
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,

N

Bytes

senden

;Gesendet

wird

der

Buchstabe

U

(0b01010101)
;Die

neuen

Verzögerungswerte

wurden

durch

Dreisatz

ermittelt
;Der

Grundtakt

des

tn26=1MHz,

des

tn13=1,2MHz
;Delay

für

1,5Bitlängen=58/1,2=48,333
;Delay

für

1

Bitlänge

=38/1,2=31,666
;Danach

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
Anfang:

ldi


A,LOW(RAMEND)

;Stackpointer

setzen

out


SP,A

sbi


ddrb,TXD


;Datenrichtung

TXD
Schleife:

rcall

RdCOM

mov

Count2,A
Cnt:

ldi

A,85

rcall

WrCOM

dec

Count2

brne


Cnt

rjmp


Schleife
RdCOM:

sbis

pinb,RXD


;Empfangen

rjmp

RdCOM

ldi


Delay,Del_15

D1:


dec


Delay

brne

D1

ldi


A,0

ldi


Count,8
L1:


lsr


A

sbic

pinb,RXD

ori


A,128

ldi


Delay,Del_1

D2:


dec


Delay

brne

D2

dec


Count

brne

L1

ldi


Delay,Del_1
D3:


dec


Delay

brne

D3

com


A

ret
WrCOM:

sbi


portb,TXD


;Senden

ldi


Delay,Del_1

D4:


dec


Delay

brne

D4

ldi


Count,8
L2:


sbrc

A,0

rjmp

OFF

rjmp

ON
ON

:

sbi


portb,TXD

rjmp

BitD
OFF:

cbi


portb,TXD

rjmp

BitD
BitD:


ldi


Delay,Del_1

D5:


dec


Delay

brne

D5

lsr


A

dec


Count

brne

L2

cbi


PORTB,TXD

ldi


Delay,Del_1

D6:


dec


Delay

brne

D6

ret