MCK 0.9 Vorbereitung der Experimentierplatine

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Vorbereitung von BASCOM für den Attiny13
    attiny13.png
    Die ATMEL- Mikrocontroller, welche BASCOM-AVR unterstützt gibt es in unterschiedlichen Ausführungen. Das auffälligste Unterscheidungsmerkmal ist die Gehäusegröße und die damit verbundene Anzahl der Anschlußpins, wobei wir uns hierbei auf die Controller im DIL (Dual InLine, siehe Abb. oben) Gehäuse beschränken, da diese für Anfangszwecke leichter zu verbauen sind und auch den leichten Austausch im Falle eines Defektes ermöglichen. Schließlich nutzen wir die Controller auf einem Experimentierboard und da kann immer mal etwas Unbeabsichtigtes passieren.

    Wesentlich größer sind jedoch die Unterschiede im Inneren der IC´s. So können die Kenndaten von zwei Schaltkreisen erheblich voneinander abweichen, obwohl beide im gleichen Gehäuse geliefert werden.Unterscheidungsmerkmale sind unter anderem (Auswahl):
    • Größe des Programmspeichers
    • Größe des EEpromspeichers
    • Anzahl der Interrupteingänge (wird später noch erklärt)
    • Vorhandensein und Anzahl von analogen Eingängen
    Diese inneren Strukturen, die von Controller zu Controller unterschiedlich sein können, müßten eigentlich bei der Programmierung des Mikocontrollers beachtet werden. BASCOM erleichter uns hier die Arbeit enorm, indem controllerspezifische Besonderheiten automatisch beachtet werden. Dazu müssen wir jedoch zu Beginn eines jeden Programms erst einmal festlegen, welchen Controller wir verwendenmöchten.
    In der Praxis überlegen wir also als erstes, welche Leistungsmerkmale für unser Projekt gefordert werden:
    • Wieviel Ausgänge benötigt mein Projekt?
    • Wieviel Eingänge werden benötigt?
    • Brauche ich analoge Eingänge?
    • Wird EEprom- Speicher benötigt und wenn ja wie viel?
    • Wieviel Programmspeicher wird voraussichtlich benötigt
    • Brauch ich Reserven (Pins, Speicher) für Erweiterungen
    Dies sind einige Fragen, die sich zu Anfang stellen.


    Grundsätzlich sollte man den Mikrocontroller nicht zu klein wählen und sich möglichst in jedem geforderten Bereich Reserven lassen. Die Preisunterschiede sind nicht so erheblich, sodass man hier ruhig großzügig vorsorgen kann. Auch gibt es kompatible Controllerreihen, bei denen man einen "zu klein gewordenen" Controller gegen den nächstgrößeren austauschen kann. Diese Mikrocontroller sollte man bevorzugt verwenden. Zu unserem Attiny13 sind beispielsweise die leistungsstärkeren Controller Attiny 25 / 45 und 85 kompatibel und können jederzeit gegen den Attiny13 ausgetauscht werden (Das dann aber auch am Programmanfang unter $regfile (siehe unten) berücksichtigen!!!)



    Lediglich für abgeschlossene Projekte kann man einen genau dimensionierten Mikrocontroller einsetzen. So reicht für eine individuelle Treppenhauslichtsteuerung ein Attiny13 im 8-Pin Gehäuse allemal. Zwar kann auch ein ATMEGA 32 im 40 poligen Gehäuse die Aufgabe übernehmen, dass wäre aber eigentlich Verschwendung und eine unnötige Vergrößerung der Schaltungsabmessungen.

    Doch zurück zur Festlegung des Controllers zu Beginn des BASCOM- Programms. Damit wir später das Programm mühelos auf den gewählten Controller übertragen können, verwenden wir den Befehl:

    $regfile gefolgt von einem in BASCOM festgelegten Kürzel für den Mikrocontroller in Anführungszeichen.
    Auf unserer ersten Experimentierplatine, wo wir mit wenigen Ein- und Ausgängen auskommen, verwenden wir den Attiny13. Einen vergleichsweise kleinen Controller im DIL 8 Gehäuse (8 "Anschlußbeine").Für den Attiny13 lautet die Configurationszeile in BASCOM:

    $regfile = "attiny13.dat"

    Jetzt weiß BASCOM, dass wir den Attiny13 verwenden, dass dieser Controller 6 (5) Ein- Ausgänge mit den Portbezeichnungen B.0 bis B.4 (B.5) hat, über 1kb Programmspeicher verfügt... usw. Und wir wissen durch die anwenderfreundliche Schreibweise immer sofort, für welchen Controller das Programm geschrieben wurde.
    Wenn wir genau wissen möchten, welche Pinbelegung unser Controller hat, so klicken wir unter "Anzeigen" auf "Pin Layout". Daraufhin öffnet sich ein neues Fenster mit dem Abbild unseres unter $regfile gewählten Microcontrollers. Die Anzeige ist "interaktiv", das heißt, wir können mit dem Mauszeiger die einzelnen Anschlüsse makieren. Im Feld darunter wird sowohl die genaue Pinbezeichnung, als auch die alternativen Funktionen als Text angezeigt. Somit haben wir immer eine genaue Hilfefunktion bei der Programmierung.

    Als zweite wichtige Angabe muß die Taktfrequenz angegeben werden, mit der der Mikrocontroller arbeitet. Wie ein externer Quarz verwendet wird und wie man dies einstellt, wird später erklärt. Die Controller besitzen auch eine interne Taktquelle, wobei uns zunächst nur der Auslieferungszustand interessiert. Beim Attiny13 sind das 1,2 MHz. Daraus ergibt sich die zweite Programmzeile:
    $crystal = 1200000


    Mit diesem Befehl wird aber nicht die Taktfrequenz des Controllers eingestellt. Die Angabe dient dem Programm nur zur korrekten Umrechnung von Befehlen, die die Taktfrequenz berücksichtigen müssen.



    Pin-Bascom.png


    Im Bild oben seht Ihr unsere bisherigen Eingaben und das Pin- Layout des Attiny13 über die BASCOM- Funktion. Über den Controllereinstellungen findet Ihr noch eine Menge grünen Text und der ist in den meisten Fällen genauso wichtig wie das Programm selber!

    'Dies ist eine Kommentarzeile. Sobald Ihr im Programm ein Hochkomma setzt,
    'färbt sich der Text im Editor grün und Ihr könnt Hinweise zu Eurem Programm
    'in den laufenden Programmcode eingeben, der von BASCOM jedoch bei der
    'Compelierung des Programms ignoriert wird.
    'Das Hochkomma ist nicht zu verwechseln mit der Taste neben dem "ß", sondern
    'befindet sich in der Regel neben der "Enter"- Taste über dem "#"
    'Kommentare sind für das Verständnis des Programms wichtig und das nicht nur
    'für andere Leser, sondern nach kurzer Zeit auch für Euch selber, denn es wird
    'dadurch sehr leicht möglich, sich in das Programm wieder einzuarbeiten.
    Rem Übrigens auch "REM" erzeugt eine Kommentarzeile. Diese Bezeichnung war
    Rem früher in BASIC üblich


    Darüber hinaus verlangt BASCOM auch die Angabe von Werten für $hwstack, $swstack, $framesize. Diese weisen spezielle Speicherbereiche zu und sind nicht ganz einfach zu erklären. Darum werden wir diese Erklärung erst zu einem späteren Zeitpunkt behandeln und nehmen die eingesetzten Werte in den Beispielprogrammen einfach als gegeben hin.

    Nachdem wir jetzt eine Durststrecke trockener Theorie hinter uns gebracht haben, welche ich Euch jedoch nicht ersparen konnte, wenden wir uns nunmehr den praktischen Arbeiten zu. Dabei werdet Ihr erkennen, dass diese zu Anfang vielleicht endlos erscheinenden Inhalte in der Praxis fast mühelos in die Arbeit mit einfließen und das unser Hauptaugenmerk in Zukunft mit Sicherheit auf dem eigentlich zu entwickelnden Programm liegt.

    Weiter mit dem Beginn des praktischen Teils

    4.526 mal gelesen