„AVR feladatok” változatai közötti eltérés

Gogerham (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
Gogerham (vitalap | szerkesztései)
Nincs szerkesztési összefoglaló
5. sor: 5. sor:
| keretszín = black
| keretszín = black
| tartalom =
| tartalom =
Írjon egy programot az AVR Experiment kártyára, amely 8 bites bináris számot olvas be a kapcsolósorról, két részletben. A kapcsolókon (SW0 -SW3) beállított értéket jobbról balra növekvő súlyozású 4 bites bináris számként kell kezelni. A 8 bites szám alsó (alacsonyabb súlyozású) része a BT0 nyomógombbal, a felső része a BT1 nyomógombbal vihető be. A BT1 gomb megnyomása után a bevitt 8 bites szám értéket jelezze ki a LED soron!
{{Infobox-táblázat|
{{Infobox-táblázat|
{{Infobox-táblázatsor|Írjon egy programot az AVR Experiment kártyára, amely 8 bites bináris számot olvas be a kapcsolósorról, két részletben. A kapcsolókon (SW0 -SW3) beállított értéket jobbról balra növekvő súlyozású 4 bites bináris számként kell kezelni. A 8 bites szám alsó (alacsonyabb súlyozású) része a BT0 nyomógombbal, a felső része a BT1 nyomógombbal vihető be. A BT1 gomb megnyomása után a bevitt 8 bites szám értéket jelezze ki a LED soron!}}
{{Infobox-táblázatsor|A kód nyelve|Assembly}}
{{Infobox-táblázatsor|A kód nyelve|Assembly}}
{{Infobox-táblázatsor|Fejlesztőeszköz|Atmel® AVR® ATmega128}}
{{Infobox-táblázatsor|Fejlesztőeszköz|Atmel® AVR® ATmega128}}
89. sor: 89. sor:


<code>
<code>
.def temp = r16
; Gombnyomás számlálás
.def temp = r16
.def cnt = r17
jmp INT4_IT ; INT4 Handler (INT gomb)
 
M_INIT:
ldi temp, 0x00
out DDRE, temp ; bemenetre állítjuk
ldi temp, 0xff
out PORTE, temp ; felhúzzuk a gombokat
ldi temp, 0xff
out DDRC, temp ; kimenetre állítjuk
ldi cnt, 0x00
out PORTC, cnt ; kikapcsoljuk a ledeket
ldi temp, 0x02 ; INT gomb, lefutóél-érzékeny
out EICRB, temp
ldi temp, 0x10 ; 4-es IT-vonal engedélyezése
  out EIMSK, temp
sei ; globális IT engedélyezve
 
M_LOOP:
in temp, PINE
sbrs temp, 5 ; ha BT0 fel van engedve, akkor átugorja a következö utasítást
call DEL_CNT
  jmp M_LOOP
DEL_CNT:
ldi cnt, 0x00
  call LED
ret
LED:
out PORTC, cnt
ret
INT4_IT:
push temp
in temp, SREG
push temp
cpi cnt, 0x0F
breq IT_END
inc cnt
call LED
IT_END:
pop temp ;
out SREG, temp
pop temp
reti
</code>
</code>
A lap eredeti címe: „https://vik.wiki/AVR_feladatok