Hi,
ich glaub die Anführungszeichen müssen weg also:
Code:if (buffer[0]==[highlight=red]1[/highlight]) anstatt if (buffer[0]==[highlight=red]'1'[/highlight])
hallo! kann mir jemand vielleciht weiterhelfen und sagen weshalb das nicht funktioniert: möchte über die serielle schnittstelle ein zeichen schicken, das dann eine LED einschaltet!
// Hauptprogramm
int main(void) {
Init();
unsigned char *buffer;
while(1){
SerRead(buffer,1,0);
if (buffer[0]=='1') {StatusLED(RED);}
else{BackLED(ON,ON);}
}
while(1);
return 0;
}
Hi,
ich glaub die Anführungszeichen müssen weg also:
Code:if (buffer[0]==[highlight=red]1[/highlight]) anstatt if (buffer[0]==[highlight=red]'1'[/highlight])
Ich bin keine Signatur ich mach hier nur sauber
danke für die schnelle antwort, aber das wars leider nicht!
Hi taylor22,Code:// Hauptprogramm #include "asuro.h" int main(void) { Init(); unsigned char buffer [1]; while(1) { SerRead(buffer,1,0); if (buffer[0]==1) {StatusLED(RED);} else{BackLED(ON,ON);} } return 0; }
bin auch grad erst am anfangen,
wenn das wirklich alles ist, hast du vergessen die asuro.h bibliothek zu includieren.
ich würde die anführungszeichen auch weglassen, die brauchst du nur bei text würd ich sagen.
die buffer variable würd ich so wie oben (in meinem code) definieren das mim stern brauchst du glaub ich nur bei funktionen definieren.
des 2. while(1) kannst du dier sparen des erste is ja schon die endlosschleife.
kanns leider nich ausprobieren, bei meinem asuro hab ich irgendwie die batteriehalterung gekillt/geschmolzen
gruß tobi
asuro.h habe ich schon inkludiert! die anführungszeichen habe ich weg genommen, und das zweite while(1) stört eigentlich nicht!
geht leider immer noch nicht!
also so wie der code oben bei mir drinne steht muckt der compiler nicht,
muss genau auf die deklaration von den variablen achten klammern semikolon etc.
leider kann ichs immer noch nicht testen asuro geht wieder, aber es flashen tut nicht...
mfg
Nicht getestet - aber probiers mal so:
Ach und die Anführungszeichen müssen da hin - Du willst ja das Zeichen '1' empfangen ...Code:unsigned char buffer[16]; // mit dem * deklarierst Du nur nen Pointer - Du // brauchst aber nen Array! Hier mit 16 Zeichen... // Hauptprogramm int main(void) { Init(); while(1){ SerRead(buffer,1,0); if (buffer[0]=='1') {StatusLED(RED);} else{BackLED(ON,ON);} } while(1); return 0; }
MfG,
SlyD
super danke, so klappts! prima!
Wenn Du das Thema "Arrays und Pointer" vertieft verstehen willst:
http://www.henkessoft.de/C++/C/arrays_pointer.htm
nächste Frage: weiss jemand, was hier noch fehlt oder was falsch ist? Sobald ich eine Taste auf der Tastatur drücke, sollte die StatusLED rot leuchten- eigentlich! Vielen Dank für Eure Hilfe!
ISR(USART_RXC_vect){
StatusLED(RED);
}
// Hauptprogramm
int main(void) {
Init();
StatusLED(OFF);
unsigned char buffer [16];
sei();
UCSRB|=(1<<RXCIE);
while(1)
{
SerRead(buffer,1,0);
}
return 0;
}
Lesezeichen