...
void InitUSART(unsigned long int bitrate ) // bitrate - szybkosc portu
{
//ladowanie rejestrow odp za szybkosc
UBRRH = (unsigned char)(((F_CPU/(16UL*bitrate))-1)>>8);
UBRRL = (unsigned char)((F_CPU/(16UL*bitrate))-1);
// 8bitów,
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
// Otwarty kanal odbioru i nadawania
UCSRB = (1<<RXEN)|(1<<TXEN);
}
void TransmitUSART(const unsigned char data ) // funkcja wysłania bajtu po RS232
{
while ( !( UCSRA & (1<<UDRE)) );
UDR = data;
}
int main(void){
unsigned long int bauda = 19200;
InitUSART(bauda);
unsigned char abc=0;
while(abc < 11)
{
TransmitUSART(00);
abc++;
}
}
Witam! mam taki problem...
dlaczego ten program wysyła tylko jeden znak? Transmisja innych znaków przebiega poprawnie, ale jak chce wysłać kilka pod rząd 0x00 to wysyła mi tylko jeden :/ dlaczego? Podejrzewam ze to kwestia optymalizacji, czy mam racje? Środowisko to AVRStudio.
z góry dzięki
...chyba wrócę do assemblera
Poprawiłem tytuł - regulamin p.11.1
[zumek]