int main() startar om hela tiden

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
JustMe84
Inlägg: 15
Blev medlem: 13 november 2011, 12:49:55

int main() startar om hela tiden

Inlägg av JustMe84 »

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)
    {
		
    }
}
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: int main() startar om hela tiden

Inlägg av eqlazer »

Watchdog?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: int main() startar om hela tiden

Inlägg av Micke_s »

har du avkoppling för matspänningen?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: int main() startar om hela tiden

Inlägg av sodjan »

Watchdog?

EDIT: Ett svar räcker... :-)
JustMe84
Inlägg: 15
Blev medlem: 13 november 2011, 12:49:55

Re: int main() startar om hela tiden

Inlägg av JustMe84 »

har haft watchdog på den här förrut, men inte i det här programmet kan det påverka? ingen kondesnator på matningen, ska prova det
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: int main() startar om hela tiden

Inlägg av sodjan »

> har haft watchdog på den här förrut, men inte i det här programmet kan det påverka?

Kanske. Du får väl se till att den är avslagen, om du inte vill ha den på.
Är den inte på så är det något annat problem...
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: int main() startar om hela tiden

Inlägg av Micke_s »

Om du inte har satt det i config:en. Skicka ut startup cause annars och se varför den startar om. Har för mig att AVR ska ha ett sådant register.

Edit: du har ju redan en länk till pc:n som funkar
JustMe84
Inlägg: 15
Blev medlem: 13 november 2011, 12:49:55

Re: int main() startar om hela tiden

Inlägg av JustMe84 »

Sökte på startup cause på google, hittade inget relevant dock, du vet inte vilket register det är?

Tror jag hittade det, ECR, Exception cause register, tack =)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: int main() startar om hela tiden

Inlägg av Micke_s »

MCUSR verkar det heta på m88
Edit: sid 53 i m88 manualen t.ex.
JustMe84
Inlägg: 15
Blev medlem: 13 november 2011, 12:49:55

Re: int main() startar om hela tiden

Inlägg av JustMe84 »

Det var watchdog, tack så mkt =)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: int main() startar om hela tiden

Inlägg av Micke_s »

Alltid enklare att fråga MCUn vad som orsakade en omstart än gissa :p
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: int main() startar om hela tiden

Inlägg av Micke_s »

Lite OT: det går confa WDT som en timer som orsakar interrrupt istället för reset.
eqlazer
Inlägg: 923
Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg

Re: int main() startar om hela tiden

Inlägg av eqlazer »

sodjan skrev:Watchdog?

EDIT: Ett svar räcker... :-)
Great minds think alike :)

Skönt att det löste sig iaf.
Skriv svar