Nachdem man sich eine Kopie des Programms BASCOM aus dem Internet heruntergeladen und auf dem PC installiert hat, erscheint nach dem Start des Programms der Startbildschirm:
Als erstes wird unter Options - IDE - Environment die Sprache gewählt.
Unter Options - IDE - Programmer muss im zweiten Schritt der USB-ISP-Programmer eingestellt werden. Die dazu notwendigen Einstellungsdaten entnimmt man den Herstellerangaben des jeweiligen Programmers. Für den von mir eingesetzten ERFOS AVR-ISP-Programmer zeigt Abb. 4 die Einstellungen, wobei der COM-Port individuell verschieden ist.
Mehr Einstellungen nehmen wir erst einmal nicht vor und beginnen mit einem einfachen Programm.
Die Reihenfolge der Arbeitsschritte ist am Anfang immer gleich.
Abbildung 6 - Schaltungsaufbau auf einem Steckbrett des Board of Education mit angeschlossener Versorgungsspannung. Es kann auch ein beliebiges Steckbrett genommen werden.
Hat man ein Arduino Board oder ein anderes Board mit fester Spannungsversorgung, dann lässt sich darüber die Versorgungsspannung abnehmen und muss nicht durch eine Zusatzschaltung erzeugt werden.
Ich selbst benutze ein normales Steckbrett mit vorinstalliertem 30-poligen Nullkraft-Sockel und Spannungsversorgungsleitungen mit Entstör-Kondensatoren von 100nF (Abb. 7). Die Versorgungsspannung wird über einen Batteriehalter für 3xAA Batterien zugeführt.
Sollte keine Fehlermeldung auftauchen, dann hat man tatsächlich sein erstes fehlerfreies Programm vorliegen. In jedem anderen Fall muss man den Fehler suchen, bevor es weiter gehen kann.
Beliebte Fehlerquellen bei diesem kleinen Programm sind:
Eigenständige Schaltung
Baut man den fertig programmierten Mikrocontroller jetzt in eine Schaltung ein, dann beginnt die LED zu blinken, so wie wir es vorher festgelegt hatten. Dazu sind nur ein paar Schritt notwendig:
Von den acht Anschlüssen des Controllers ATtiny13 werden zwei für die elektrische Spannungsversorgung benötigt (P4, P8) - bleiben noch sechs Anschlüsse, die der Hersteller summarisch als PortB anspricht. Es ist ein sogenannter 6-Bit breiter bidirektionaler I/O Anschluss mit internen Pull-up Widerständen, die einzeln angewählt werden können. PB5 ist als Reseteingang vorgesehen.
Alle Informationen vom oder zum Controller laufen über Speicher , die ausgelesen oder beschrieben werden können. Der ATtiny13 hat sechs Portpins, auf die über das sogenannte I/O Register PORTB zugegriffen werden kann. Jeder einzelne Pin dieses Ports wird mit PINBx oder kürzer PBx bezeichnet, wobei x eine Zahl zwischen 0 und 7 ist. Die Pins werden von 0 an hochgezählt.
Eingang oder Ausgang
Am Anfang muss festgelegt werden, ob ein Portpin Eingang oder Ausgang ist. Dies erfolgt über das data direction register (DDR). Nach jedem Programmstart sind alle Pins auf Eingang geschaltet.
In unserem ersten Testprogramm wird nur PB2 als Ausgang benötigt, über den die LED ein- und ausgeschaltet werden soll. Deshalb steht in Programmzeile 14
Config PORTB.2 = Output
In der Endlosschleife DO ... LOOP wird das Blinken der LEDs gesteuert.
Mit
PORTB.2 = 1
wird PB2 auf HIGH gesetzt und mit
PORTB.2 = 0
auf LOW. Der BASCOM Befehle
waitms (wait milliseconds)
gibt an, wieviele Millisekunden das Programm anschließend anhalten soll.
Im folgenden Kapitel 2 geht es um den Timer0 des ATtiny13A, was es ist und was er kann. -> weiter mit Kapitel 2