Uživatel:Trisktom

Z MAM wiki

Verze z 7. 3. 2013, 10:52; Trisktom (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání


example LED-show program for ATtiny 2313
2-color LED with 300 Ohm resistor in series is supposed to be
connected between pins 12 (PB0, LED_X) and 13 (PB1, LED_Y).
Color1 shines when LED_X is high and LED_Y is low
Color2 shines when LED_Y is high and LED_X is low
LED is off when LED_Y and LED_X are both low or both high


.EQU DDRB = $17 ; DDRB address .EQU PORTB = $18 ; PORTB address

.EQU DDRD = $17 ; DDRB address .EQU PORTD = $18 ; PORTB address

.EQU PINB =$16

.EQU LED_X = 0 ; LED_X is on PB0, pin 12 of ATtiny2313 .EQU LED_Y = 1 ; LED_Y is on PB1, pin 13 of ATtiny2313

Pins connected to LED are outputs, DDRx=1 (set)

SBI DDRB, LED_X ; SBI - Set Bit in I/O Register SBI DDRB, LED_Y

SBI DDRD, 0 SBI PORTB, 2 GO: RCALL COLOR1 RCALL WAIT SBIS PINB, 2 RCALL COLOR2 RCALL WAIT RJMP GO

P R O C E D U R E S

SMALLWAIT: INC R1 ; INC - Increment BRNE SMALLWAIT ; BRNE - Branch if Not Equal (Z flag) RET ; RET - Return from Subroutine

WAIT: LDI R16, 4 ; LDI - Load Immediate WAIT1: INC R1 BRNE WAIT1 INC R2 BRNE WAIT1 DEC R16 BRNE WAIT1 RET

COLOR1:

   SBI	PORTB, LED_X

CBI PORTB, LED_Y ; CBI - Clear Bit in I/O Register RET

COLOR2:

   SBI	PORTB, LED_Y

CBI PORTB, LED_X RET

COL3W: LDI R16, 2 COL3X: RCALL COLOR1 RCALL SMALLWAIT RCALL COLOR2 RCALL SMALLWAIT INC R2 BRNE COL3X DEC R16 BRNE COL3X

DARK:

   CBI	PORTB, LED_X

CBI PORTB, LED_Y RET



led:SBIS PINB,LED_X SBI PORTB,LED_X CBI PORTB,LED_X RET

Osobní nástroje