Hallo, ich hab in den Ferien angefangen mich mit C zu beschäftigen ich versuch schon seit fast 2 Tagen mit meinem atmega8 Tastatureingaben zu empfangen und vieleicht zu senden, aber ich scheitere immer wieder an Compilerfehlern da ich in C noch nicht so viel Ahnung hab ich such also eine Funktion die wartet und Buchstaben empfängt und eine die Buchstaben an den PC senden kann und vielleicht noch ne kurze Erklärung zur Funktionsweise damit ich sie besser bei mir einbauen kann im Prinzip gibt’s ja 2 Möglichkeiten 1. die Tastatur hängt an zwei Pin's vom AVR und der Computer hängt an den gleichen (z.B. data = PD4 und clock = PD2 (INT0)) oder 2. die Tastatur hängt an zwei Pin's (z.B. data = PD4 und clock = PD2 (INT0)) und der Computer an zwei Anderen (data = PD7 und clock = PD2 (INT1)) mit Bascom funktioniert das Empfangen wunderbar (wenn die Tastatur nur am AVR hängt, aber wenn man den AVR einschleift und die Tastatur noch am PC anschließt kommt nur Mist am Terminal an, da der PC auch noch irgendwas sendet) das Senden mit Bascom ist schwer umzusetzen, seiden man kauft sich sone PS2AT Mouse and Keyboard Emulator Libarie in C gibt es jedoch ne Menge Beiträge zu dem Thema, ich hab in der Datei PS2-PC-AT-keyboard.rar mal par Sachen zusammengefasst die ich so gefunden hab, die funktionieren aber bei mir nicht und anpassen schaff ich nicht (funktionieren vieleicht unter älteren Compilern) da ich Vista hab muss ich aber die hier nutzen: AVR Studio 4 Version 4.13 Build 528 WinAVR 20070525 (neuste Versionen) welche auch sonst wunderbar funktionieren (Terminal, Led's ...) ich freu mich auf eure Antworten danke
so das Empfangen funktioniert schon mal, egal ob mit PC oder wenn die Tastatur nur am AVR hängt ne Sendefunktion zum PC mach ich später mal
hi, hab den code mal mit meinem mega32 getestet! Funktioniert schon ganz gut, wenn ich allerdings das print_hexbyte rausnehme zeigt er oft unsinn an!
ja ich hab das gleiche Problem mit dem print_hexbyte, ich hab min. 2 Tage versucht das wegzubekommen, eine eventuelle Lösung hab ich gefunden, man sendet einfach an der Stelle 2 mal '\n' , am Terminal dürfte eigentlich nichts passieren meins macht nur bei '\r' einen Zeilenumbruch oder man sendet irgend einen String z.B. "--" Ich habe es auch mal mit Interrupt gesteuerter UART versucht, brachte aber auch keinen Erfolg
hallo, hatte noch keine zeit mich weiter damit zu beschäftigen aber ich denke da liegt ein timing problem vor. Du sendest und empfängst immer im while-loop, im interrupt werden die bits geschoben die über den INT0 hereinkommen, bestimmt passieren da zwei sachen gleichzeitig, sodass er teilweise zeichensalat sendet. Interessant ist ja einfach, dass immer der richtige Buchstabe mitgesendet wird. Also rein theoretisch funktioniert es ja ;). Schau mal in der Codesammlung nach, da gibt es beispiele die es auch mit dem INT0 regeln, such mal nach AT Tastatur und dergleichen!
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.