So gesehen hast du recht.
Ich kann aber eigentlich keinen Fehler sehen.
Sei () hast du ja drinnen ?
So gesehen hast du recht.
Ich kann aber eigentlich keinen Fehler sehen.
Sei () hast du ja drinnen ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
siehst du da irgndwo einen Fehler ?Code:__task void main() { init_hw_uart(); // 19200 @3.686 MHz __enable_interrupt(); while(1); } void init_hw_uart() { // Set Baudrate UBRRH = 0x00; UBRRL = 0x0B; // Enable receiver and transmitter UCSRB |= (1<<RXEN)|(1<<TXEN)|(1<<RXCIE); // Set frame format: 8data bit , 1 Stop Bit UCSRC |= (1<<UCSZ1)|(1<<UCSZ0); } void transmit_byte(unsigned char data) { // Put data into buffer, sends the data UDR = data; } #pragma vector=USART_RXC_vect __interrupt void UART_RX_interrupt(void) { DDRB |= (1<<PB0); // Status LED initialization PORTB ^= (1<<PORTB0); // toggle status LED unsigned char data; data = UDR; //receive data transmit_byte(data); // echo data }![]()
UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Geht jetzt....
ok dann ma sw-uart mit reinbasteln
Schau ich mir gleich an.
Wir können für diesen Versuch auch mit der HW-Uart senden, es ist im Grunde egal.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Wenn das Echo mal prinzipiell getestet ist und funzt,
hw_transmit_byte(data); // echo data
reicht aber dann
hw_transmit_byte(bRxCount + 0x30); // return actual rxcounter
bin ich neugierig
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
HW-UART funzt, aber anscheinend wird nie RX_M_DATA gesetzt (siehe while-Schleife)
Denn im Terminal zeigts kein Counterstand an...
Habs jetzt so:
Mal schauen, ob INT0 überhaupt anspringt.
In der Hw Receive-ISR den Flag RX_M_RECEIVE prüfen
Isser gesetzt, ist INT0 offenbar angesprungen
wenn nicht, müssen wir klären, warum das so ist.
( mach einfach statt "send-one-byte( '0') oder ('1') )
Ist der Flag da, aber rxCount bleibt null, kommt die Timer-ISR nicht dran
(irgendein enable fehlt ?)
Schaust du mal ?
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Sag ma sperren sich die Interrupts nicht gegenseitig ??
Meine damit INT0 und den USART_RXC...
Hab Status LED in INT0 und des springt net an...
Außerdem is ja INT0 PD2 und RXD ist PD0
Lesezeichen