Tag, ich möchte mit einem Mega8 in C eine PS/2 Tasatur auslesen und dann auf einem 2*16 Zeichen LCD ausgeben. Die Routinen um auf das LCD zu schreiben habe ich von der Website von Ulrich Radig und die funktionieren gut, mit fest programmierten Zeichen. Wie ich die Tastaturdaten empfange, weiß ich schon, danach habe ich 8Bit in einer Variable gespeichert (UART-Rx geht nicht, da auf PORTC das LCD hängen muss). Wenn ich "LCD_Print(0,0, x)"(x = Empfangenes Zeichen) kommt nur eine Fehlermeldung beim Compilieren(WinAVR/Make.exe). ASCII ist das Zeichen ja schon, d.h. itoa() o.ä. hilft mir nicht. Vielleicht hat es ja schon jemand von euch gemacht und könnte mir eventuell einen Tipp geben? Danke im voraus, Michael
Michael, vielleicht hilft es ein wenig, wenn man die Fehlermeldung posten würde??????? Wie soll man denn dazu Tips geben? Servus, Helmut.
Sorry, die Fehlermeldung ist "test1.c:66: error: incompatible type for argument 3 of 'LCD_Print'" Im Angang sind die Routinen für das LCD. Michael
LCD_Print funktioniert wie ein printf LCD_Print( 0, 0, "%c", x ); > Wie ich die Tastaturdaten empfange, weiß ich schon, danach habe ich 8Bit > in einer Variable gespeichert (UART-Rx geht nicht, da auf PORTC das LCD > hängen muss). Das, vor allem der letzte Satz macht mich stutzig. Bevor ich aber nicht mehr darüber weiß, spare ich mir sonstige Kommentare dazu.
Danke, die Fehlermeldung kommt nicht mehr. Wenn ich das ganze mal laufen lasse, und eine Taste drücke passiert...nichts. Hier ist mal der ganze Code den ich(bzw. Ulrich Radig) geschrieben hab. Ich glaube der Fehler ist, dass ich warte, bis die Clock-Leitung auf HIGH gezogen wird, die Tastatur diese aber immer, außer beim Senden, auf HIGH HAT, d.h. es kann nich tun. Ich denke, ich habe 2 Möglichkeiten: a) Signal extern invertieren b) auf LOW warten, problem: Befehl?? Vielleicht kennt einer von euch die Umsetzung für eine der Möglichkeiten oder weiß was anderes, schlaueres?? Michael PS: Mein Code ist vielleicht ein wenig komisch, bin halt erst 14 und konnte deshalb noch keine 20 Jahre in C programmieren...
Aha.. wenn man loop_until_bit_is_set(WARTEPIN, WARTEBIT); durch loop_until_bit_is_clear(WARTEPIN, WARTEBIT); ersetzt, sieht das ganze schon anders aus. Nur wenn ich jetzt das ganze einschalte, kommen Kästchen und ein paar d. Nach einer weile beginnt sich alles zu bewegen SOS!! Vor allem: das ganze kommt in der 2. Zeile, obwohl diese eigentlich ja nicht beschrieben wird... Michael
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.