Hallo Ich habe folgendes Problem: Ich möchte ein Programm für den Atmega8 schreiben welches über die RS232 Schnittstelle mit dem PC kommuniziert. Dabei möchte ich das Programm solange anhalten bis eine beliebige Taste am Computer gedrückt wird. Dazu deaktiviere ich alle interrupts und warte dann auf den Tastendruck. Welche routine muss ich dafür verwenden? Habe probleme mit scanf() da bei einem Tastendruck gleich mehrere scanf() (bei welchen das Programm wieder stehen sollte) übersprungen werden. Vielen Dank schon im vorraus MfG Hannes Maier
Hallo, versuch es einmal hiermit: unsigned char c1; ..... ..... c1=getchar(); //getchar() wartet solange, bis eine Taste gedrückt wird. Alternativ (je nach Compiler) heißt die Funktion auch getkey(); Gruß Carlos
Danke für die schnelle antwort ich verwende jetzt getchar(); müsste eigentlich funktinieren kann es aber erst morgen ausprobieren
hallo ich würde schreiben while(!kbhit()); dafür brauchst du allerding die conio.h
>while(!kbhit());
Da braucht man dann die berühmte Any-Key-Taste ... ;-)
Zumindest in älteren C-Versionen war es sinnvoll, anschließend den
Tastaturbuffer zu leeren.
danke wie cleare ich den buffer vom usart am besten? mir wäre schon geholfen wenn mir wer erklären könnte wie ich auf das RXC register im codevision zugreifen kann RXC wird nämlich nicht erkannt
RXC ist nur ein Flag (Receive Complete) das im Register UCSRA liegt (Bit 7). Das wird imho automatisch gelöscht, wenn du den Receive-Buffer ausliest (UDR)
void USART_Flush(void) { unsigned char dummy; while(UCSRA & 0x80) dummy=UDR; } müsste doch funktionieren oder?
Bei c1=getchar(); brauchtst Du Dich um das Leeren des Buffers gar nicht zu kümmern, das wird ja automatisch gemacht, da der Wert in c1 abgelegt wird. Das ist nun mal am einfachsten. Carlos.
super danke eine frage hätte ich aber noch: Wie kann ich auf den eeprom speicher schreiben und lesen?
> eine frage hätte ich aber noch: > Wie kann ich auf den eeprom speicher schreiben und lesen? Das steht in der Hilfe. Gruß Sven
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.