PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
JustMe84
Inlägg: 15 Blev medlem: 13 november 2011, 12:49:55
Inlägg
av JustMe84 » 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)
{
}
}
eqlazer
Inlägg: 923 Blev medlem: 22 september 2007, 13:53:45
Ort: Göteborg
Inlägg
av eqlazer » 25 september 2012, 21:47:21
Watchdog?
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 25 september 2012, 21:48:04
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
Inlägg
av sodjan » 25 september 2012, 21:48:17
Watchdog?
EDIT: Ett svar räcker...
JustMe84
Inlägg: 15 Blev medlem: 13 november 2011, 12:49:55
Inlägg
av JustMe84 » 25 september 2012, 21:49:22
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
Inlägg
av sodjan » 25 september 2012, 21:51:40
> 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...
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 25 september 2012, 21:52:19
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
Inlägg
av JustMe84 » 25 september 2012, 21:56:06
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 =)
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 25 september 2012, 21:59:24
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
Inlägg
av JustMe84 » 25 september 2012, 22:03:48
Det var watchdog, tack så mkt =)
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 25 september 2012, 22:06:56
Alltid enklare att fråga MCUn vad som orsakade en omstart än gissa
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 25 september 2012, 22:08:58
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
Inlägg
av eqlazer » 25 september 2012, 22:17:21
sodjan skrev: Watchdog?
EDIT: Ett svar räcker...
Great minds think alike
Skönt att det löste sig iaf.