Hm Timer0 ist eigentlich immer enabled ? (uart_init())
Hab jetzt nur
// bTxFlag &= ~TX_M_SEND; // Deactivate Transmit-Mode
und
// TIFR |= (1<<TOV0); // clear T/C0 overflow flag
// TIMSK |= (1<<TOIE0); // enable T/C0 overflow interrupt
auskommentiert
Es wird nur das RX_M_RECEIVE gesetzt. Die y kommen immer noch...
Code:#pragma vector=INT0_vect __interrupt void ext_int0(void) { if(!(bRxFlag & RX_M_RECEIVE)) { GICR = 0; // Disable external interrupt // bTxFlag &= ~TX_M_SEND; // Deactivate Transmit-Mode TCNT0 = INT0_PRELOAD; // Set timer reload-value (to 1.5 bit len). 29 = time delay that // have already been used in this // interrupt plus the time // that will be used by the time // delay between timer interrupt request // and the actual sampling of the first // data bit. // TIFR |= (1<<TOV0); // clear T/C0 overflow flag // TIMSK |= (1<<TOIE0); // enable T/C0 overflow interrupt bRxCount = 0; // Clear Receive Counter bRxFlag |= RX_M_RECEIVE; // Activate Receive-Mode } }







Zitieren

Lesezeichen