
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:
N
Bytes
senden
wird
der
Buchstabe
U
(0b01010101)
neuen
Verzögerungswerte
wurden
durch
Dreisatz
ermittelt
Grundtakt
des
tn26=1MHz,
des
tn13=1,2MHz
für
1,5Bitlängen=58/1,2=48,333
für
1
Bitlänge
=38/1,2=31,666
experimentell
korrigiert
.include
"tn26def.inc"
.def
A
=
r16
.def
Delay
=
r17
.def
Count
=
r18
.def
Count2
=
r19
;Port
B
.equ
TXD
=
1
.equ
RXD
=
2
.equ
Del_1
=
30
.equ
Del_15
=
48
rjmp
Anfang
ldi
A,LOW(RAMEND)
;Stackpointer
setzen
out
SP,A
sbi
ddrb,TXD
;Datenrichtung
TXD
rcall
RdCOM
mov
Count2,A
ldi
A,85
rcall
WrCOM
dec
Count2
brne
Cnt
rjmp
Schleife
sbis
pinb,RXD
;Empfangen
rjmp
RdCOM
ldi
Delay,Del_15

dec
Delay
brne
D1
ldi
A,0
ldi
Count,8
lsr
A
sbic
pinb,RXD
ori
A,128
ldi
Delay,Del_1

dec
Delay
brne
D2
dec
Count
brne
L1
ldi
Delay,Del_1
dec
Delay
brne
D3
com
A
ret
sbi
portb,TXD
;Senden
ldi
Delay,Del_1

dec
Delay
brne
D4
ldi
Count,8
sbrc
A,0
rjmp
OFF
rjmp
ON
:
sbi
portb,TXD
rjmp
BitD
cbi
portb,TXD
rjmp
BitD
ldi
Delay,Del_1

dec
Delay
brne
D5
lsr
A
dec
Count
brne
L2
cbi
PORTB,TXD
ldi
Delay,Del_1

dec
Delay
brne
D6
ret