int main() startar om hela tiden
Postat: 25 september 2012, 21:40:45
Hej håller på att prova UART lite. Har skrivit lite kod som jag trodde skulle skicka ett par bytes en gång, men koden loopar och skickar det i all oändlighet och jag förstår inte varför, nån som kan hjälpa? Det jag tar emot på andra sidan(datorn) är rätt bytes, men alldelles för många ggr.
Kod: Markera allt
#include <avr/io.h>
#define USART_BAUDRATE 2400
#define BAUD_PRESCALE (((1000000 / (USART_BAUDRATE * 16UL))) - 1)
void SendData(char *TextToSend, uint8_t length)
{
uint8_t i = 0;
while (i != length)
{
while ((UCSR0A & 0b00100000) != 0b00100000)
{
}
UDR0 = TextToSend[i];
i++;
}
}
int main(void)
{
uint8_t sent = 0;
UCSR0B |= (1 << RXEN0) | (1 << TXEN0); // Turn on the transmission and reception circuitry
UCSR0C |= (1 << UCSZ00) | (1 << UCSZ01); // Use 8-bit character sizes
UBRR0H = (BAUD_PRESCALE >> 8); // Load upper 8-bits of the baud rate value into the high byte of the UBRR register
UBRR0L = BAUD_PRESCALE; // Load lower 8-bits of the baud rate value into the low byte of the UBRR register
char tempArray[3];
tempArray[0] = 2;
tempArray[1] = 3;
tempArray[2] = 4;
char tempArray2[1];
tempArray2[0] = 1;
SendData(&tempArray2,1);
SendData(&tempArray[0], 3);
while(1)
{
}
}