Mach aus
Daten Alias Pina.0
Clock Alias Pina.1
einfach:
Daten Alias Porta.0
Clock Alias Porta.1
Hi Rofo88!
Der Beispielcode sieht im Grunde gut aus, allerdings ergibt die Syntax Prüfung in Bascom bei mir einen Fehler in den drei Zeilen wo folgendes versucht wird:
Im Senden 0 Unterprogramm:
Daten = 0 'Daten auf low
Clock = 0 'Clock auf 0
Im Senden1 Unterprogramm:
Clock = 0
Da kommt dann immer der folgende Fehler in BASCOM:
Error 230: You can not write to a PIN register [PINA.0], etc.
Irgendeine Erklärung, bzw. Modifikation des Codes um es zum Laufen zu bringen ?
Gruß,
Oscar10
Mach aus
Daten Alias Pina.0
Clock Alias Pina.1
einfach:
Daten Alias Porta.0
Clock Alias Porta.1
@zerush
Das wird leider nicht funktionieren da Daten und Clock auch als Input abgefrag werden.
@oscar10
Also ich habe Bascom 1.11.9 da läufts! Welche Version hast Du?
Rofo88:
Ich habe leider noch die 1.11.8.7....
@oscar10
So, das sollte auch mit der älteren Version laufen
Code:$regfile = "m32def.dat" $crystal = 16000000 Declare Sub Senden Declare Sub Senden0 Declare Sub Senden1 Dim X As Byte Dim Y As Byte Dim Send As Byte Dim Parity As Byte 'Hier bitte die Portdaten eintragen Daten Alias Pina.0 Datenport1 Alias Porta.0 Datenport Alias Ddra.0 Clock Alias Pina.1 Clockport Alias Ddra.1 Clockport1 Alias Porta.1 For Y = 0 To 29 ' sendet "hallo AVR" Send = Lookup(y , Dat) Call Senden Next Do : Loop 'endlosschleife '######################### Unterprogramme ################################# Senden: Do : Loop Until Clock = 1 And Daten = 1 'warte bis PC empfangsbereit 'Startbit (immer 0) Call Senden0 '8 Datenbists For X = 0 To 7 If Send.x = 0 Then '0 Senden Call Senden0 Else '1 Senden Call Senden1 End If Next 'parity If Parity.0 = 0 Then Call Senden0 Else '1 Senden Call Senden1 End If 'Stopbit (immer 1) Call Senden1 Parity = 0 Return Senden0: 'Sendet eine 0 über PS2 Datenport = 1 'Daten auf Output Datenport1 = 0 'Daten auf low Clockport = 1 'Clock auf Output Clockport1 = 0 'Clock auf 0 Waitus 30 '30µS warten Clockport = 0 'Clock auf Input Waitus 5 '5 µS warten Datenport = 0 'Daten auf Input Return Senden1: 'Sendet eine 1 über PS2 Clockport = 1 'Clock auf Output Clockport1 = 0 'Clock auf 0 Waitus 30 '30µS warten Clockport = 0 'Clock auf Input Incr Parity Return Dat: Data &H33 , &HF0 , &H33 , &H1C , &HF0 , &H1C , &H4B , &HF0 Data &H4B , &H4B , &HF0 , &H4B , &H44 , &HF0 , &H44 , &H29 Data &HF0 , &H29 , &H12 , &H1C , &HF0 , &H1C , &H2A , &HF0 Data &H2A , &H2D , &H
Hallo,
was muss ich bei Dat als DATA eingeben, damit er mir nur ein "m" an den PC sendet?
Gruß
Papsi
http://www.marjorie.de/ps2/scancode-set2.htm
Schaue Dir die Tabelle mal an.
MakeCode : 3A BrakeCode : F0,3A
also
Data &H3A , &HF0 , &H3A
Aha - das mit den Daten im HexFormat ist jetzt klar...
ABER
Wenn ich dein letztes Programm probiere und es starte, dann piept mein PC nur sooft, wie die HEx Sachen gesendet werden.
Also pro &Hxx einmal
Anschluss und Portbelegung sollte nicht das Problem sein.
???
:EDIT
Muß ich evtl. noch was zw. PC und µC hängen.
Habe jetzt die beiden Ausgangspins A.0 und A.1 direkt an die PS2 Buchse geklemmt.(altes Tastaturkabel)
Nein, da muß nichts mehr dazwichen. Aber die Masse darfst Du nicht vergessen!
GND und +5V habe ich natürlich auch verbunden...
Lesezeichen