Hallo, Ich benutze ein 8MHz crystal mit zwei 22pF condensoren. Aber mein program funktioniert nicht. Es funktioniert gut mit dem 16 MHz external clock: CKSEL 3...0: 0000 SUT1...0:00 #define FOSC 16000000 Ich benutze auch ein internal Timer. Die program muss e TCCR1B|=(1<<CS12); //Prescaling: /256 TCCR1B|=(1<<WGM12); //Mode of operation CTC: Top OCR1A #if (FOSC==16000000) OCR1A=62500; //So many increments for 1 second // 16uS (microSeconds) for 1bit increment: When TCNT1 //reaches this value it is reset to 0. // when F_OSC = 16MHz --> 1 round = 0.0000000625 s #elif (FOSC==8000000) OCR1A=31250; //So many increments for 1 second //32uS (microSeconds) for 1bit increment: When TCNT1 //reaches this value it is reset to 0. // when F_OSC = 8MHz --> 1 round = 0.000000125 s #endif Bitte helfen Karthik
[quote] #define FOSC 16000000 [/quote] Was meinst du, was FOSC heißt...
FOSC ist die Clock speed: #define FOSC 16000000// Clock Speed #define BAUD 19200 #define MYUBRR FOSC/16/BAUD-1 void Uart_Init(unsigned int ubrr) { /* Set baud rate */ UBRRH = (unsigned char)(ubrr>>8); UBRRL = (unsigned char)ubrr; /* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN); /* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0); }
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.