 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pet Sep 24, 2010 10:49 pm Naslov sporočila: Mala šola AVR - 7.dan |
|
|
Tako. Glavne procedure so spisane. Nastal je projekt, ki smo si ga zastavili na začetku. Dopisal sem še proceduro, ki upravlja z relejem. Kompletna komentirana koda je v prilogi. Vse rutine, ki smo jih spisali lahko praktično brez večjih sprememb uporabimo v drugih programih. Če bo mikrokontroler delal z drugačno frekvenco, bo pač potrebno spremeniti časovne baze, kar ni večji problem, ker so vse ločene. Izkoristili smo kar nekaj možnosti malčka. Če prav je še par stvari ostalo neuporabljenih. Recimo timer, nismo še poskusili PWM, prav tako nismo poskusili rabe analognih vhodov. (slednje še morda dopišem - ostal je še en prosti pin - lahko bi morda merili napetost)
Tole je rezultat zadnjega prevajanja:
Koda: |
[.cseg] 0x000000 0x000250 576 0 576 1024 56.3%
[.dseg] 0x000060 0x000060 0 0 0 64 0.0%
[.eseg] 0x000000 0x000000 0 0 0 64 0.0%
Assembly complete, 0 errors. 0 warnings |
Vidimo, da je bilo porabljena dobra polovica pomnilika malčka. Torej bi lahko še marsikaj dopisali. Upam, da sem skozi "ta teden" vsaj malo približal mikrokontroler začetniku. Če koga karkoli zanima, lahko vprašanje zastavi tukaj.
Besedo pa predajem Janu ter Darkotu, ki bosta nadaljevala v C-ju.
Opis: |
|
 Download |
Ime datoteke: |
termoDS.zip |
Velikost datoteke: |
226.46 KB |
Downloadano: |
26 krat |
Opis: |
Izvorna koda pisana v avr assemblerju (komentirana) |
|
 Download |
Ime datoteke: |
Ucenje.zip |
Velikost datoteke: |
11.98 KB |
Downloadano: |
44 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
mcride Član


Pridružen-a: Tor 27 Okt 2009 22:36 Prispevkov: 788 Aktiv.: 4.14 Kraj: LJ
|
Objavljeno: Sob Sep 25, 2010 9:39 am Naslov sporočila: |
|
|
Čisto offtopic: Najprej pohvale za trud, čas in voljo; veliko tega "tedna" sem prebral(ne vsega, bo pa treba!) mogoče bi bilo podoben projekt narediti tudi v PIC razdelku, sedaj ko je koncep narejen, s kakšnim 16fxxx, oz 12f673,12f683 če bi šlo za kaj manjšega.
lp
|
|
Nazaj na vrh |
|
 |
eddie Član

Pridružen-a: Sre 10 Dec 2003 21:02 Prispevkov: 723 Aktiv.: 3.05 Kraj: Severna primorska
|
Objavljeno: Sob Sep 25, 2010 1:39 pm Naslov sporočila: |
|
|
Se pridružujem pohvalam za trud!
Zraven pa eno kratko vprašanje: če bi želeli te subrutine sedaj shraniti v svojo datoteko ali to pomeni, da jih samo prestavimo v drugo datoteko poleg programa, v tem programu pa jo "includamo", ali je sintaksa tiste datoteke drugačna?
Torej ali labele na skoke v tem programu zna poiskati tudi v drugi datoteki.
sam sem poizkušal to pred parimi dnevi pa mi ni uspelo uspešno prevesti programa.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Sep 25, 2010 3:47 pm Naslov sporočila: |
|
|
eddie je napisal/a: |
Se pridružujem pohvalam za trud!
Zraven pa eno kratko vprašanje: če bi želeli te subrutine sedaj shraniti v svojo datoteko ali to pomeni, da jih samo prestavimo v drugo datoteko poleg programa, v tem programu pa jo "includamo", ali je sintaksa tiste datoteke drugačna?
Torej ali labele na skoke v tem programu zna poiskati tudi v drugi datoteki.
sam sem poizkušal to pred parimi dnevi pa mi ni uspelo uspešno prevesti programa. |
Eddie,
V prilogi kako to storiš. Če želiš incudat vse procedure, potem jih shraniš v datoteko. Datoteko pa includaš v programskem pomniliku tam kjer želiš kodo. Slaba lastnost takega načina je, da bo dejansko uvožena vsa vsebina, recimo tudi tista, ki je v našem drugem programu ne bomo potrebovali. Zato je procedure pamentneje spraviti v makroje. (bom pokazal v nadaljevanju) Include datoteko naložiti v začetku, v programskem delu pomnilika pa poklicat le makroje ki jih rabimo.
Zelo važno! include datoteko končaj s komentarjem, sicer bo prevajalnik težil.
Opis: |
|
 Download |
Ime datoteke: |
ucenje2.zip |
Velikost datoteke: |
12.08 KB |
Downloadano: |
14 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Sep 25, 2010 3:47 pm Naslov sporočila: |
|
|
mcride je napisal/a: |
Čisto offtopic: Najprej pohvale za trud, čas in voljo; veliko tega "tedna" sem prebral(ne vsega, bo pa treba!) mogoče bi bilo podoben projekt narediti tudi v PIC razdelku, sedaj ko je koncep narejen, s kakšnim 16fxxx, oz 12f673,12f683 če bi šlo za kaj manjšega.
lp |
Vso kodo pisano za AVRassembler bi bilo potrebno "prevesti" v PICAssembler pa bi zadeva delala s picem. Šalo na stran. Po arhitekturi zelo podoben pic uporabljenemu tiny13 je PIC12F675. Programa se bi lahko lotili pisati na popolnoma enak način kot tega za avr. Če mi bo dopuščal čas, morda tole zmečem skupaj še za pic. Za en tak tedenski tečaj pa žal v tem trenutku nimam časa.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.93 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Sep 25, 2010 7:35 pm Naslov sporočila: |
|
|
Citiram: |
...Zato je procedure pamentneje spraviti v makroje. (bom pokazal v nadaljevanju).... |
Napisal sem par makrojev.
Zaradi lažje razlage sem kar napisal novo proceduro. Zgornje makroje seveda lahko daste v svojo datoteko, ter jo naložite za include datoteko procesorja. Z makroji postane assembler basic ... Kodo seveda lahko poskusite na AVR sumulatorju. Mislim, da posebna razlaga ni potrebna.
Koda: |
;---------------------------------------------------
;Mala šola avr 7.dan
;makroji
;--------------------------------------------------
.include "tn13def.inc"
.def tmp=r16
.macro DolociSklad
ldi tmp,low(ramend)
out SPL,tmp
.endmacro
.macro DolociIzhodB
sbi DDRB,@0
.endmacro
.macro VkljuciIzhodB
sbi PortB,@0
.endmacro
.macro IzkljuciIzhodB
cbi PortB,@0
.endmacro
.macro For
ldi @0,@1
.set @2=PC
.endmacro
.macro Next
inc @0
cpi @0,low(@1+1)
breq Mkonec
rjmp @2
MKonec:
.endmacro
.org 0x0
rjmp GlavniProg
.org 0x13
GlavniProg:
DolociSklad
DolociIzhodB 2
VkljuciIzhodB 2
For tmp,5,zanka1
IzkljuciIzhodB 2
nop
VkljuciIzhodB 2
Next tmp,15,zanka1
nop
;nadaljevanje kode
|
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|