Hej!
Jag försöker få en atmega32 att vid overflow på timer2 att skriva ut en liten text på datorskärmen (seriell kommunikation). Själva interruptrutinen fungerar så långt att jag får en diod att blinka. Så fort jag vill skriva ut något blir det dock problem och ingenting händer.
void uartSendByte(u08 txData)
{
// wait for the transmitter to be ready
while(!uartReadyTx); <=== Här
uartReadyTx sätts i UART_INTERRUPT_HANDLER(SIG_UART_TRANS), men detta verkar inte göras så fort jag aktiverat TIMSK (nedan). Någon som har en lösning på mitt problem?
Jag har kollat lite vidare på det, och det går att skriva ut något på seriella porten i while-snurran, samtidigt som dioden blinkar enligt ISR(TIMER2_COMP_vect).
Däremot stannar allt om jag lägger in rprintf("\n\r Interrupt"); i ISR-funktionen. Kan det vara så att den inte hinner skriva ut något innan nästa interrupt kommer och allting börjar på nytt? Hur löser jag det isf? Har testat med högsta precalern och att försöka fördröja nästa utskrift lång tid, utan framgång.