Atmel AVR programozas

VF vf at elte.hu
Thu Dec 26 21:28:33 CET 2002


Thus spake Istvan Retaller:

>> Meg nehany kerdes: mit kell kotni az AT90S2313 reset labara? Neha elteved
>> a progi bekapcsolaskor. Ha csak egy 10k felhuzo van rajta, jobban
>> mukodik, mint ha egy 100n kondi is lenne a fold fele, ritkabban akad ki.
> 
> Nalam a mostani applikacioban 120k/33n van es tokeletes.

Mint kiderult, a doksiban benne is van, hogy csak akkor indul be az
automatikus reset aramkore, ha a tap elotte kb 1V (nem emlexem pontosan)
ala csokken. Ez az en esetemben nyilvanvaloan nem teljesult (piros led
gyonyoruen vilagitott a tapon), igy nem is lehet csodalkozni hogy
rendetlenkedett... Egyebkent mukodik jol. (Sajnos nem az elso alkalom,
hogy feluletesen olvasok el egy doksit :)

> Felejtsd el az AVR sajat assemblert, nekem akkor lett elegem, mikor
> kiderult, hogy a $ szimbolumot nem ismeri, hezagosan fordit, mert nem tudja
> paratlan cimen folytatni es hasonlo elemi dolgok. Atmelekkel leveleztem es
> ok maguk ajanlottak a szinten ingyenes IAR assemblert. Kb. tizszer annyit
> tud, mint az Atmel. En egy hetig sem kuszkodtem az eredeti Atmellel,
> rogton az IAR-rel dolgoztam, igy az AVR sajat assemblerrol semmit nem tudok.

A $-nek mit kene csinalnia? Az altalam ismert assemblerekben a hexa
szamokat jeloli. Az mukodik az AVR Studioban is. Viszont a % nem muxik,
es ASCII-t sem eszik meg. Tehat ldi r16,"a" es ldi r16,%1010 nem muxik.
A hezagos forditas ciki ugyan, de ha csinalsz kulon .dseg-et, akkor
elmeletileg csak a szegmens vegen egesziti ki paros cimre.
(Nem probaltam ki, mert nekem nem okozott problemat)
Ketsegtelen, hogy ez hulyeseg. Az m68k procik szinten csak paros cimen
kezdodo utasitast hajtanak vegre, de egyetlen assembler sem fordit
kikapcsolhatatlanul minden adatot is(!!) paros cimre. Adat lehet akarhol,
utasitas elott even, vagy cnop 0,2, es kesz. A fordito jo esetben szol
hogy nem kene kodot paratlan cimre rakni (warning), rossz esetben address
error-al elszall a progi, de nem koti meg a fordito a fejleszto kezet.
Ezt elcsesztek Atmelek:(
 Az IAR nekem egyelore nem jott be. Baromi lassu, az 1G4 Athlon gepen a
forditas elkezdese elott mindig var 1-2 masodpercet, az AVR Studio utan
ez idegesito. Meg rosszabb, hogy le sem fordult nekem ugyanaz a progi,
nem is tudom hogy mi a hiba, tulajdonkeppen semmit sem sikerult meg
leforditanom vele :) Beleirtam ket nopot, build, kerestem a .hex fajlt,
nem talaltam. Elso benyomas megvolt :)
 En tulajdonkeppen elegedett vagyok a studioval, egyedul a lokalis
cimkek hianyoznak. De azok sem nagyon, vegul is 2k-ba nem lehet olyan
nagyon bonyolult progit irni :) Viszont januarban lehet hogy az EKG
gepunk progijat is at kell majd irni ATmega-ra, ott mar nagyon szukseg
lesz rajuk. IAR tud ilyet?
Mivel a multkor sem reagalt senki, roviden leirom hogy ez mire jo.
Olyan cimke, mely csak ket normalis cimke kozott ervenyes, mashol lehet
masik ugyanilyen nevu cimke. Minden masodik fuggvenyben van legalabb
1 ciklus vagy nehany elagazas, oda kivaloak. Masik fuggvenyben nem kell
gondolkozni hogy nehogy ugyanazt a nevet hasznaljuk, mert ugy is csak a
fuggvenyen belul ervenyesek a cimkek. Az ilyen cimkek "."-al kezdodnek.
Pl:

strcpy  movem.l  d0-d1/a0-a1,-(sp)
        moveq    #50,d1
.0      move.b   (a0)+,d0
        move.b   d0,(a1)+
        dbeq     d1,.0
        movem.l  (sp)+,d0-d1/a0-a1
        rts

fprint  move.l   a2,-(sp)
        lea      .0(pc),a2
        move.l   execbase(a5),a6
        jsr      _LVORawDoFmt(a6)
        move.l   (sp)+,a2
        rts
.0      movem.l  d2/a6,-(sp)
        move.l   d0,d2
        move.l   stdout(a5),d1
        move.l   dosbase(a5),a6
        jsr      _LVOFPutC(a6)
        movem.l  (sp)+,d2/a6
        rts

> Szoval adott idoben igencsak ismertem a PIC-eket, de mostanra elegem lett.
> Szerintem a kis processzorokra zsenialis a PIC, de nem lett volna szabad
> ugyanerre az architecturara nagyobb procikat fejleszteni. A szegmentalt
> kodteruletek ilyenkor orjitove valnak. Viva AVR, sokkal jobb, mint a PIC!

Szerintem kis rendszerekre sem zsenialis. Egy kompromisszumos megoldas,
ami mara tulhaladott lett. Lehet hogy az egyszerubb felepites miatt
olcsobban lehet(ett) gyartani, de ez az alkatreszek araban egyaltalan
nem tukrozodik... Igy szerintem felesleges szenvedni vele.
Sajnos picbol hihetetlen valasztek van, bizonyara nem ritka az olyan
alkalmazas, ahol a nehany fele AVR proci mindegyikebol hianyzik valami,
picbol viszont 5 megfelelo alkatresz kozul lehet valogatni. Ilyenkor
tovabbra is picet kell tervezni az aramkorbe, mert azzal olcsobb, es a
fonokot csak az erdekli, az nem hogy mi mennyit szenvedunk vele.
Ha viszont az AVR is pont jo, akkor gyakorlatilag ugyanannyiba kerul,
de tudasaval porig alazza az osszes picet. Nagyon kenyelmesen
programozhato, es gyors!

> Üdv, RI

-- 
Valenta Ferenc <vf at elte.hu>   Visit me at http://ludens.elte.hu/~vf/
"Mindig jo, ha bajba jutsz, hogy ha orditsz s korbefutsz!"





More information about the Elektro mailing list