Hallo Markus,
habe mir mal die Hilfe zu Bascom vorgenommen:
Demnach liest du in deinem Programmbeispiel von D4 (Pin6) ein. Weiter oben war aber die Rede von Pin2 (RXD).Port The name of the port to use. This must be a letter like A for portA.
Pin The pin number you want to use of the port. This must be in the range from 0-7.
Allerdings fällt mir bei der Literatur der Hilfe auf, dass Bascom die Hardwareroutinen des Mega8 wohl gar nicht nutzt. Deshalb kann man auch jeden beliebigen Pin für die Funktion angeben.
Zurück zu deinem Programm. Wenn der Wert in einen String eingelesen ist und anschließend mit Print ausgegeben wird, wird mit Sicherheit wegen des Binärformats irgendwelcher Müll ausgegeben (siehe Terminal).
Besser ist doch, gleich in Variable einzulesen mit denen man auch was anfangen kann.
Allerdings darf die Ausgabe mit Print nicht an das Kompassmodul geschickt werden, sondern muss zum PC (Terminal). Achso, der Code oben ist nicht getestet sondern einfach so aufgeschrieben. Vielleicht kann ja jemand mit BASCOM-Erfahrung da mal draufgucken. Was erreicht werden soll steht ein paar Postings weiter oben.Code:$regfile = "m8def.dat" $crystal = 3686400 $baud = 9600 Ddrd = 0 Portd = 0 Dim Heading As Word Dim H_low As Byte Dim H_high As Byte Dim Check As Byte Dim Strtemp As String * 10 Do Serin Strtemp , 0 , D , 0 , 9600 , 0 , 8 , 1 ' wartet auf CR (synch) Serin H_low , 1 , D , 0 , 9600 , 0 , 8 , 1 Serin H_high , 1 , D , 0 , 9600 , 0 , 8 , 1 Serin Check , 1 , D , 0 , 9600 , 0 , 8 , 1 Heading = H_high * 256 Heading = Heading + H_low Print "Kompass: " ; Heading Loop
Viele Grüße
Jörg







Zitieren

Lesezeichen