Segitség egy (ujra-) kezdönek
Segitség egy (ujra-) kezdönek
25 éves szünet után (akkor PIC-kel) ujra nekifogtam RISC processzorok hobbi szintü programozásának.
Minden HW és SW megvan.
Kinek lenne kedve segiteni az elsö lépésekben?
Föleg szekvenciális feladatokrol van szo - egyszerü bementi jelekkel bizonyos feladatokat (feladatsorokat) kell elvégezni az ATTiny2313-s processzorrral.
A válaszokat az privát üzenetekre kérem.
Kösz
Minden HW és SW megvan.
Kinek lenne kedve segiteni az elsö lépésekben?
Föleg szekvenciális feladatokrol van szo - egyszerü bementi jelekkel bizonyos feladatokat (feladatsorokat) kell elvégezni az ATTiny2313-s processzorrral.
A válaszokat az privát üzenetekre kérem.
Kösz
Kösz ezen már egy kicsit tul vagyok:
Az AVR DRAGONon kivül már épitettem 2 feljlesztö modult:
http://www.pollin.de/shop/downloads/D810046B.PDF
meg ezt
http://www.pollin.de/shop/dt/NjQ5OTgxOT ... _V1_0.html
A LED-eket már tudom kapcsolgatni, még a késleltetö rutinok meg hasonlo részletek hiányoznak.
Most jönnek a végleges NYÀKok az egyik majdani feladathoz.
Az AVR DRAGONon kivül már épitettem 2 feljlesztö modult:
http://www.pollin.de/shop/downloads/D810046B.PDF
meg ezt
http://www.pollin.de/shop/dt/NjQ5OTgxOT ... _V1_0.html
A LED-eket már tudom kapcsolgatni, még a késleltetö rutinok meg hasonlo részletek hiányoznak.
Most jönnek a végleges NYÀKok az egyik majdani feladathoz.
Igaza van Róbertnak!
Inkább itt a fórumon tanuljál.
1: mert az ASM. Nagyon el van hanyagolva itt a fórumon, és biztos másokat is érdekelne.
2: Ezért nem is találsz 1 személyes jelentkezőt oktatásra. (Bár lehet, tévedek?)
Viszont az aktuális problémához akadhat valaki, aki hozzá szólna.
3: Érdeklődő mindig van, pláne a még ismeretlen területek iránt. Ezért szívesen látnánk az
eddigi ASM. munkáidból példákat.
Ha ASM. Területen akarsz fejlődni a legjobb kiindulópont lehet:
A Bascom lib könyvtárában levő *.lib fájlok tanulmányozása. Ezek túlnyomórészt ASM-ban vannak meg írva.
Betöltöd a Bascomba, Átnevezve elmented, és már garázdálkodhatsz is benne kedvedre.
Aztán a Tools menü. Lib Manager-rel lefordítod és használhatod is a művedet.
(Mivel a Bascom részben szabadon felhasználható, nyílt forráskódú. Ezért azt hiszem nem lesz baj, ha itt tárgyaljuk ki!)
Talán vágjunk bele a közepébe!
Mivel pont az LCD kezelés lett szóbahozva, legyen ez a téma.
A 4 adatvezetékes LCD init-ett megtaláljuk az „lcd4busy.lib”-ben, legyen a mi változatunk: „mylcd4busy.lib”
Idézek a programból és oda írom mi van készen és mit kellene megoldani.
; Változók és állandók létrehozása
; Ezt kell ASM-ban megcsinálni
; Ezt a részt a Bascom "lcd4busy.bas" programban megtalálod.
; Az INIT és a többit már itt készen van csak használni kel:
(Az utasítások előtt levő „*” jelzi, hogy a változót a .bas –ban keresse a fordító.)
; Most te döntesz! Neki mersz vágni?
; Vagy inkább megtanulod a Bascomot?

Ui.: Közben már találsz is 1 példát késleltetésre:

Inkább itt a fórumon tanuljál.
1: mert az ASM. Nagyon el van hanyagolva itt a fórumon, és biztos másokat is érdekelne.
2: Ezért nem is találsz 1 személyes jelentkezőt oktatásra. (Bár lehet, tévedek?)
Viszont az aktuális problémához akadhat valaki, aki hozzá szólna.
3: Érdeklődő mindig van, pláne a még ismeretlen területek iránt. Ezért szívesen látnánk az
eddigi ASM. munkáidból példákat.
Ha ASM. Területen akarsz fejlődni a legjobb kiindulópont lehet:
A Bascom lib könyvtárában levő *.lib fájlok tanulmányozása. Ezek túlnyomórészt ASM-ban vannak meg írva.
Betöltöd a Bascomba, Átnevezve elmented, és már garázdálkodhatsz is benne kedvedre.
Aztán a Tools menü. Lib Manager-rel lefordítod és használhatod is a művedet.
(Mivel a Bascom részben szabadon felhasználható, nyílt forráskódú. Ezért azt hiszem nem lesz baj, ha itt tárgyaljuk ki!)
Talán vágjunk bele a közepébe!
Mivel pont az LCD kezelés lett szóbahozva, legyen ez a téma.
A 4 adatvezetékes LCD init-ett megtaláljuk az „lcd4busy.lib”-ben, legyen a mi változatunk: „mylcd4busy.lib”
Idézek a programból és oda írom mi van készen és mit kellene megoldani.
; Változók és állandók létrehozása
; Ezt kell ASM-ban megcsinálni
; Ezt a részt a Bascom "lcd4busy.bas" programban megtalálod.
Kód: Egész kijelölése
;the default library for BASCOM can handle worst case scenarios where each pin of the LCD
;is connected to a random pin of the micro
;When we choose the data port pin in sequence, we can save some code
;This lib shows how to use the LCD in 4 bit mode
;Rs = PortB.3
;RW = PortB.2
; E = PortB.1
;E2 = PortB.0 optional for lcd with 2 chips
;Db4 = PortB.4 the data bits must be in a nibble to save code
;Db5 = PortB.5
;Db6 = PortB.6
;Db7 = PortB.7
; in your basic program use:
;$lib "lcd4busy.lib"
;Const _lcdport = Porta
;Const _lcdddr = Ddra
;Const _lcdin = Pina
;Const _lcd_e = 1
;Const _lcd_rw = 2
;Const _lcd_rs = 3Kód: Egész kijelölése
;This routine is called when the LCD must be initialized
[_init_lcd]
_init_lcd:
clr R24 ; set all portpins low
* out _LCDport, r24
ser r24 ; set port pins to output
* out _LCDDDR, r24
Ldi R30, 28
Ldi R31, 78
Rcall _lcd_delay ; 20 ms delay at 4 MHz
ldi r24, &B00110000 ; 8-bit interface high nibble
* out _LCDport, r24
* sbi _LCDport, _LCD_E ; set pin
nop ; delay
nop
* cbi _LCDport, _LCD_E ; disable E
Ldi R30, 132
Ldi R31, 19
rcall _lcd_delay ; 5 mS delay at 4 MHz
* sbi _LCDport, _LCD_E ; nibble is already setup
nop
nop
* cbi _LCDport, _LCD_E
Ldi R30, 96 ; 100 uS delay at 4 MHz
Ldi R31, 0
rcall _lcd_delay
* sbi _LCDport, _LCD_E
nop
nop
* cbi _LCDport, _LCD_E ; clear
Ldi R30, 96 ; 100 uS delay at 4 MHz
Ldi R31, 0
rcall _lcd_delay
ldi r24, &B00100000 ; Command for 4-bit interface high nibble
* out _LCDport, r24
* sbi _LCDport, _LCD_E ; pulse
nop
nop
* cbi _LCDport, _LCD_E ; clear enable
ldi r24, &H28
rcall _Lcd_control
Ldi r24,14 ; Display on, Cursor on, Noblink
Rcall _Lcd_control
Ldi r24,6 ; Cursor moves right, text doesn 't move
RJmp _Lcd_control ; return will come from _lcd_control
_lcd_delay:
Sbiw R30,1 ;2 cycles
Brne _lcd_delay ;2 cycles
Ret
[end]
.......
; Most te döntesz! Neki mersz vágni?
; Vagy inkább megtanulod a Bascomot?
Ui.: Közben már találsz is 1 példát késleltetésre:
Kód: Egész kijelölése
Ldi R30, 96 ; 100 uS delay at 4 MHz
Ldi R31, 0
rcall _lcd_delay
_lcd_delay:
Sbiw R30,1 ;2 cycles
Brne _lcd_delay ;2 cycles
Ret
Illetve asm minták vannak még pár darab a mikrokontroller.net oldalon is, illetve pár kisebb tutorial. LCD, Sorsport, IO kezelés, ADC. De komplex alkalmazásra tényleg inkább magasszintű nyelvek (C, Cpp, Bascom-AVR, uPascal).
Az ASM nem olyan rossz, főleg hogy időkritikus helyen kellhet. Ekkor ASM betétet raknak általában a kódba és a többi rész megy magas szinten...
Az ASM nem olyan rossz, főleg hogy időkritikus helyen kellhet. Ekkor ASM betétet raknak általában a kódba és a többi rész megy magas szinten...
A Hardware már elindult, most már csak a progival kell megbirkozni...Robert írta:Minden tanulható....
És az oldalon itt is van 1000 minta.
Az LCD kezelés pl. 4 sor bascomban, míg ASMben ~1,5 oldal!
Gondltam hátha beletanulnál....
http://666kb.com/i/bscyils3ua85xqu6s.jpg