Für die Ausgabe von Zeichenketten oder Zahlen stellt BASCOM die Befehle print bzw. printbin zur Verfügung. Hiermit werden die Daten über eine serielle Schnittstelle an das Terminal-Programm gesendet. Mikrocontroller wie der Attiny2313 bzw. die Atmegas stellen dafür eine Hardware-Schnittstelle zur Verfügung. Der Attiny85 besitzt etwas derartiges nicht. Bascom kann aber eine solche Schnittstelle emulieren. An einem Beispiel soll hier gezeigt werden, wie das geht.
Der Attiny85 soll die Zeichenkette "Test" fortwährend im Abstand von 2 Sekunden an ein Terminal-Programm auf dem PC senden.
1. Programm
Zunächst muss eine Software-Schnittstelle errichtet und konfiguriert werden. Dies geschieht mit dem Befehl
Open "COMB.1:9600,8,n,1" For Output As #1
Hierdurch wird eine serielle Verbindung an Port B.1 mit den Spezifikationen 9600 Baud, 8 Bit, kein Paritätsbit, 1 Stoppbit hergestellt. Port B.1 dient als Ausgang und erhält die Kanal-Nummer 1. Nun kann der print-Befehl (fast genauso) wie bei einer Hardware-Schnittstelle benutzt werden; wir müssen lediglich hinter den Print-Befehl den Kanal angeben, z. B.:
print #1, "Test"
In entsprechender Weise kann man weitere Verbindungen aufbauen, z. B. auch für den Empfang von Daten mit der input-Funktion. Jede Verbindung muss dabei eine eigene Kanalnummer und einen eigenen Port-Anschluss erhalten.
Das gesamte Programm sieht z. B. so aus:
Code: Alles auswählen
$regfile = "attiny85.dat"
$crystal = 16500000
$hwstack = 40
$swstack = 16
$framesize = 32
Open "COMB.1:9600,8,n,1" For Output As #1 ' Port B.1 ist Ausgang (TxD)
Do
Print #1 , "Test"
Wait 2
Loop
Close #1
End
2. Kontrollieren des seriellen Signals
Zur Kontrolle schließen wir den Pin B.1 an den Eingang eines Logik-Analysators an und führen eines Messung durch. Abb. 2 zeigt das Diagramm des seriellen Signals mitsamt einer Auswertung (entsprechend der oben angegebenen Spezifikationen). Hier wurde die Zeichenkette offensichtlich korrekt übertragen.
3. Terminal-Betrieb
Wir trennen jetzt den Digispark vom PC. Nun verbinden wir den Pin B.1 des Attiny85 mit dem RxD-Eingang eines TTL-Seriell-USB-Adapters. Außerdem verbinden wir die beiden Masse-Anschlüsse (GND) von Digispark und dem Adapter (s. Abb. 1).
Der Adapter wird anschließend über ein USB-Kabel mit dem PC verbunden; dieser sieht den Adapter als serielle Schnittstelle (COM) an. Wir öffnen nun unser Terminal-Programm (mit der COM-Nr des Adapters) und konfigurieren das Terminal-Programm mit denselben Spezifikationen, wie sie beim open-Befehl benutzt worden sind. Wenn wir das Terminal vom Uploader-Programm (Download) benutzen, sind diese Einstellung schon vorgegeben.
Nun versorgen wir den Digispark über eine externe Quelle (z. B. eine Powerbank, nicht über einen PC) mit Strom. Dann aktivieren wir den Empfang beim Terminal. Abb. 3 zeigt das Ergebnis.
.