-
-
Ein Listing meines Miniprogrammes hatte ich zwar als Attachment angehängt, aber irgendwie hat man darauf keinen Zugriff.
Habe leider noch keine vernünftige Hilfe finden können, wie man in einem Beitrag ein aufklappbares scrollbares Listing oder einen Download für Listings o.ä. einfügt. Egal, füge ich es eben in diesem Post ein.
Testen tu ich hauptsächlich auf dem Steckbrett. Das STK500 ist mir etwas zu undurchsichtig und zu wertvoll, um es wegen einer falschen Polung über den Jordan zu schicken. Es scheint eine mehr als zweilagige Platine zu sein, wo man die Leiterzüge nicht alle sieht.
Die Masse dürfte auf allen Anschlüssen durchgängig sein, ich hab's aber nicht durchgemessen. Es geht mir hauptsächlich um die VTG-Anschlüsse. Auf Seite 3-2 des Handbuches sind sie als spannungzuführende Anschlüsse zu sehen. Da ist an den Switches- uns den LED-Anschlüssen jeweils nur einer und ich weiß nicht so richtig, wie ich die Taster und LED's einzeln verschalten soll. Das Handbuch redet nur von den 10-poligen Flachbandkabel, aber ein Tiny13 hat aber nur einen Port, da bin ich nun mal gezwungen, das Ganze aufzuteilen, wenn ich Taster und LED's gleichzeitig benutzen will. Nun ich weiß, das gehört eigentlich in die Hardwareabteilung, aber man kann ja einen Beitrag kaum über mehrere Sparten splitten.
In vergangenen Beiträgen ist mir auch aufgefallen, daß einige Probleme mit ihren MCU's hatten. Die liefen auf dem STK500 aber außerhalb nicht. Diese Beiträge haben mich aber wegen nicht vorhandenem STK interresiert und habe sie nicht weiter verfolgt. Ist mir gerade so eingefallen und diese Beiträge noch mal, zu suchen ist mir zu mühselig.
Nun hier das Miniprogramm. Wie gesagt, es toggelt nur zwei Ausgänge und soll mir nur zeigen, ob die MCU überhaupt zuckt.
Auf irgendwelche Interrupts und Timer habe ich dabei ganz bewußt verzichtet, um nicht in irgendwelche Fallen zu tappen.
;************************************************* ****************************
; Test des ATtiny13 auf Funktion
;
; MCU: ATtiny13; interner Takt=9,6MHz
;
; macht nichts weiter, als zwei Ausgänge zu toggeln
;************************************************* ****************************
;
.nolist
.include "C:\Programme\Atmel\AVR Tools\AvrAssembler2\Appnotes\tn13def.inc"
.list
;
; Konstanten
.equ maske1 = 0b00001000
.equ maske2 = 0b00010000
; Register
.def mp = R16
;
; Interruptvektoren
rjmp main
;
; ====================================
; Warteschleifen-Generator ca. 0.5 sek
; ------------------------------------
warten:
ldi R20, $25
WGLOOP0: ldi R21, $B8
WGLOOP1: ldi R22, $EA
WGLOOP2: dec R22
brne WGLOOP2
dec R21
brne WGLOOP1
dec R20
brne WGLOOP0
; =============================
ret
;
;************** Hauptprogramm ********************************
main:
ldi mp,low(RAMEND)
out SPL,mp
;
; Hardware initialisieren
ldi mp,0x00
out PORTB,mp
out DDRB,mp
; Toggle-Schleife
loop:
rcall warten
ldi mp,maske1
out PORTB,mp
rcall warten
ldi mp,maske2
out PORTB,mp
rjmp loop
;
.exit
Auf dem AT90S2313 rennt es jedenfalls wie Schmitt's Katze.
mfg Roger
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen