ATmega16, C-kod som beter sig slumpmässigt (i mina ögon)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: ATmega16, C-kod som beter sig slumpmässigt (i mina ögon)

Inlägg av TomasL »

Detb är ju inte så konstigt att det inte fungerar, eftersom bokstäverna "a-f" ingår i data du skickar.
vad du måste göra är att:

Du skickar alltså först 0x61 tom 0x66 som kommandon. Det innebär att när du skickar data som andra byten får du aldrig skicka dessa 6 värden.

Om du trots allt måste skicka detta som data, måste du skicka två byte i stöten, mellanlagra det i en buffert och därefter behandla dem, där första byten är kommando, och andra data, du kan alltså inte med den koden du har skicka en byte i taget, för då blir det fel, vilket du ser.
Dessutom, skall du initiera alla variabler, speciellt om de skall användas som index.
I teorin skall de initieras till 0 iom att du satt dem till statiska, men det kan du inte lita på.
mmarks
Inlägg: 46
Blev medlem: 4 februari 2012, 16:00:14

Re: ATmega16, C-kod som beter sig slumpmässigt (i mina ögon)

Inlägg av mmarks »

Tack TomasL! Det är ju självklart när du pekar ut det! Önskar att jag hade frågat lite tidigare, det hade besparat mig många timmar med dåligt humör ;-)
Nu kan jag ju inte pröva detta förrän om ca en vecka men det verkar ju väldigt troligt att detta skulle vara orsaken till min huvudvärk!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46976
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: ATmega16, C-kod som beter sig slumpmässigt (i mina ögon)

Inlägg av TomasL »

jag hade gjort nått i den här stilen

Kod: Markera allt

unsigned char i=0;
unsigned char rxbuff[xxx]; // beroende på hur många byte du skall ta emot
unsigned char rxcmd=0;

while (rx_reg_not_empty)
	{
		rxbuff[i++]=rxreg;
	}
	if (i>=1) // beroende på hur många byte du tar emot i stöten
		{
			rxcmd=rxbuf[0];
			switch (rxcmd)
			{
				.....
				.....
				.....
				.....
			}
		
		
		}
Skriv svar