Na nepájivém poli jsem pak zapojil drátky i ATtiny15L.
| From ATtiny15 Parallel Port Programmer |
V počítači sice nemám paralelní port, ale je v jednom malém servříku za mnou, tak jsem na ten srvřík nainstaloval programátor uisp a avrdude.
| From ATtiny15 Parallel Port Programmer |
S uisp mi to funguje příkazy:
# uisp -dlpt=/dev/.static/dev/parport0 -dprog=dapa --download
# uisp -dlpt=/dev/.static/dev/parport0 -dprog=dapa --erase --upload --verify if=/tmp/blik15.hex -v=3A s avrdude pak příkazy:
# avrdude -c dapa -p t15
# avrdude -c dapa -p t15 -U flash:w:/tmp/blik15.hex
Program který na to maličkém obvodu právě běží je následující. Jen sem z něj vystříhl definice periferií aby byl kratší.
.... definice periferií
.def w=r16
;; Tabulka vektorů přerušení
.ORG 0
RESET: RJMP MAIN ; Reset Handle
V_INT0: rjmp RESET ; External Interrupt Request 0
V_IOPCH:rjmp RESET ; Pin Change Interrupt
V_T1CM: rjmp RESET ; Timer/Counter1 Compare Match A
V_T1OVF:rjmp RESET ; Timer/Counter1 Overflow
V_T0OVF:rjmp RESET ; Timer/Counter0 Overflow
V_EERDY:rjmp RESET ; EEPROM Ready
V_ANAC: rjmp RESET ; Analog Comparator
V_ADCCC:rjmp RESET ; ADC Conversion Complete
; Main code executed after power on and/or reset.
.ORG $009
MAIN:
; We don't initialize stack (SPL,SPH) because ATtiny15
; contains hardware stack 3 level deep.
;; Initialize
LDI W,$18 ; PB3,PB4 out, only
OUT DDRB,W
;; Main Program Loop
LOOP:
SBI PORTB,3
LDI R22,1
RCALL DLY3
SBI PORTB,4
LDI R22,2
RCALL DLY3
CBI PORTB,3
CBI PORTB,4
RCALL DLY
RCALL DLY
RCALL DLY
RCALL DLY
RCALL DLY
RJMP LOOP

Žádné komentáře:
Okomentovat