Programmierung des ATtiny26

von Felix Irmscher
 aus ELO 2008
Elektronik-Labor  Labortagebuch  ELO  

Mithilfe des Lernpakets Mikrocontroller lässt sich auch der Attiny 26 problemlos mittels LPmikroISP.exe programmieren! Da hat man dann einige Ein- und Ausgänge mehr zur Verfügung. Natürlich sind die entsprechenden Pins für MISO, MOSI und SCK zu verwenden.

 

Tiny26


Da mir zur Programmierung die Verwendung des Terminals in Lpmikros.exe nützlich erschien, habe ich Ihre Unterprogramme WrCOM und RdCOM entsprechend verändert.


Folgende Schritte sind dann zur Verwendung des Terminals nötig:
1. Programm mit LPmikroISP.exe in den Controller laden
2. LPmikroISP.exe schließen
3. Lpmikros.exe starten und Terminal verwenden

 
Leider lassen sich die Fuses des ATtiny26 mit LPmikroISP.exe nicht ändern.

 
Anpassung der seriellen Schnittstelle an den internen Oszillator mit 1 MHz:

 

;RS232test1,NBytessenden
;GesendetwirdderBuchstabeU(0b01010101)
;DieneuenVerzögerungswertewurdendurchDreisatzermittelt
;DerGrundtaktdestn26=1MHz,destn13=1,2MHz
;Delayfür1,5Bitlängen=58/1,2=48,333
;Delayfür1Bitlänge=38/1,2=31,666
;Danachexperimentellkorrigiert

.include"tn26def.inc"

.defA=r16
.defDelay=r17
.defCount=r18
.defCount2=r19

;PortB
.equTXD=1
.equRXD=2

.equDel_1=30
.equDel_15=48


rjmpAnfang
Anfang:
ldiA,LOW(RAMEND);Stackpointersetzen
outSP,A
sbiddrb,TXD;DatenrichtungTXD
Schleife:
rcallRdCOM
movCount2,A
Cnt:
ldiA,85
rcallWrCOM
decCount2
brneCnt
rjmpSchleife

RdCOM:sbispinb,RXD;Empfangen
rjmpRdCOM
ldiDelay,Del_15
D1:decDelay
brneD1
ldiA,0
ldiCount,8
L1:lsrA
sbicpinb,RXD
oriA,128
ldiDelay,Del_1
D2:decDelay
brneD2
decCount
brneL1
ldiDelay,Del_1
D3:decDelay
brneD3
comA
ret

WrCOM:sbiportb,TXD;Senden
ldiDelay,Del_1
D4:decDelay
brneD4
ldiCount,8
L2:sbrcA,0
rjmpOFF
rjmpON
ON:sbiportb,TXD
rjmpBitD
OFF:cbiportb,TXD
rjmpBitD
BitD:ldiDelay,Del_1
D5:decDelay
brneD5
lsrA
decCount
brneL2
cbiPORTB,TXD
ldiDelay,Del_1
D6:decDelay
brneD6
ret