Hallo
Keine Ahnung was du damit meinst. Der betreffende Bereich in asuro.c sieht so aus:in asuro.c in die Zeile 145 F_CPU = 8000000 geschrieben (Was zu nem ganzen haufen Fehlern geführt hat).
Zeile 145 ist rot markiert. Hier ersetzt du F_CPU durch 8000000 oder rechnest den Wert für das jeweilige Register selbst aus:Code:/* Die serielle Schnittstelle wurde waerend der Boot-Phase schon programmiert und gestartet. Hier werden die Parameter auf 2400 1N8 gesetzt. */ #if defined(__AVR_ATmega168__) UBRR0L = (uint8_t)(F_CPU/(BAUD_RATE*16L)-1); UBRR0H = (F_CPU/(BAUD_RATE*16L)-1) >> 8; UCSR0B = (1<<RXEN0) | (1<<TXEN0); UCSR0C = (1<<UCSZ00) | (1<<UCSZ01); #else UBRRH = (((F_CPU/BAUD_RATE)/16)-1)>>8; // set baud rate UBRRL = (((F_CPU/BAUD_RATE)/16)-1); UCSRB = (1<<RXEN)|(1<<TXEN); // enable Rx & Tx UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0); // config USART; 8N1 #endif
UBRRH = (((8000000/2400)/16)-1)>>8; // set baud rate
UBRRL = (((8000000/2400)/16)-1);
Oder du verwendest direkt den Wert für UBRR aus dem Datenblatt unter "Examples of Baud Rate Setting"
UBRRH=0; // set baud rate
UBRRL=207;
Das funktioniert aber nur, weil der asuro alle seine Zeiten selbst berechnet und nicht delay.h verwendet.
Gruß
mic







Zitieren


Lesezeichen