Atmega pri nizsej teplote

David Obdrzalek David.Obdrzalek na mff.cuni.cz
Pátek Únor 22 21:08:18 CET 2019


No jo, no, jsem si myslel, ze to je jen v mailu tak nesikovne napsane, jeden \ misto 
dvou, ale ze si je mam otocit, me nenapadlo :-) 
A pritom takovou hezkou teorii jsem vymyslel :-(((

Ze zvedavosti - ty nepouzite piny jsou nekam zapojene? Nebo vubec pripajene?
Jeste v datasheetu pisou, ze se analogovym pinum ma vypinat digital input buffer.

V tom listingu je sice chybne napsano po obakrat strchr(filepath, '/') tj. s 
apostrofama, ale zajimavejsi mi prijde, jak tam prekladac cvici s tema registrama. 
Obcas pro nulovani pouzije ldi a obcas r1. Obcas hodnotu nastavi pomoci ldi a obcas 
okopiruje z registru, kam si ji uz byl schoval - ze to neni konzistentni? (no a i 
malinko usetrit by se myslim dalo)

D.O.

On 22 Feb 2019 at 13:23, Michal Lukac wrote:
> nie, SD kartou to nebolo, pozeral som CS pin a ked to prestalo fungovat tak ten pin
> bol stale na 1. chyba bola v tej atmega.
> to iste aj s inou kartou.
> 
> ale asi to bolo takto:
> ja som zle napisal, nebol to znak \ a ale / to je 0x2F
> ked je tam len ten znak ‘/’ pouzije priamo jeho adresu. na adrese 0x2F je PINF to su analogove vstupy.
> Pouzivam len AD0 a AD1 na ostatnych pinoch neboli zapnute ani pullup takze boli len tak do luftu.
> tak sa to mohlo nacitat ako 0x00 (to vysiel ako retazec 0vej dlzky) a potm pri zmene teploty sa ostatne
> piny zmenili na 1 a bolo to 0xFC tie dva analogove bralo ako 0. (tiez obcas to aj
> pri normalnej teplote vypadlo...)
> 
> 
> 080024e <_ZTV5Print>:
>   80024e:    00 00           nop
>   800250:    00 00           nop
>   800252:    c2 01           movw    r24, r4
>   800254:    e9 0a           sbc    r14, r25
>   800256:    bf 01           movw    r22, r30
>   800258:    be 01           movw    r22, r28
>   80025a:    2f 00           .word    0x002f    ; ????     <- 0x25A
> 
> 
> Takto to je prelozene ked tam je “/”
> --------------------------------------
>   2262:    34 01           movw    r6, r8
>   2264:    8a e5           ldi    r24, 0x5A    ; 90        <- na adrese 0x25A je
> 0x2F 0x00
>   2266:    a8 2e           mov    r10, r24
>   2268:    82 e0           ldi    r24, 0x02    ; 2
>   226a:    b8 2e           mov    r11, r24
> SdFile *subdir = &d2;
> const char *origpath = filepath;
> while (strchr(filepath, '/')) {
>   226c:    28 01           movw    r4, r16
>   226e:    6f e2           ldi    r22, 0x2F    ; 47
>   2270:    70 e0           ldi    r23, 0x00    ; 0
>   2272:    c5 01           movw    r24, r10
>   2274:    82 d2           rcall    .+1284       ; 0x277a <strchr>
>   2276:    00 97           sbiw    r24, 0x00    ; 0
> 
> 
> 
> Takto to je prelozene ked tam je ‘/’
> --------------------------------------
>   2262:    34 01           movw    r6, r8
>   2264:    8f e2           ldi    r24, 0x2F    ; 47       <- adresa je hodnota to
> ho znaku
>   2266:    a8 2e           mov    r10, r24
>   2268:    b1 2c           mov    r11, r1
> const char *origpath = filepath;
> while (strchr(filepath, '/')) {
>   226a:    28 01           movw    r4, r16
>   226c:    6f e2           ldi    r22, 0x2F    ; 47
>   226e:    70 e0           ldi    r23, 0x00    ; 0
>   2270:    c5 01           movw    r24, r10
>   2272:    82 d2           rcall    .+1284       ; 0x2778 <strchr>
> 
> ...
> ...
> ...
> 
> 0000277a <strchr>:
>     277a:    fc 01           movw    r30, r24
>     277c:    81 91           ld    r24, Z+
>     277e:    86 17           cp    r24, r22
>     2780:    21 f0           breq    .+8          ; 0x278a <strchr+0x10>
>     2782:    88 23           and    r24, r24
>     2784:    d9 f7           brne    .-10         ; 0x277c <strchr+0x2>
>     2786:    99 27           eor    r25, r25
>     2788:    08 95           ret
>     278a:    31 97           sbiw    r30, 0x01    ; 1
>     278c:    cf 01           movw    r24, r30
>     278e:    08 95           ret
> 
> 
> 
> 
> 
> 
> 
> From: sam.hw 
> Sent: Friday, February 22, 2019 7:42 AM
> To: hw-list na list.hw.cz 
> Subject: Re: Atmega pri nizsej teplote
> 
> Zdravim,
> 
> v prvni moment napadlo, jestli to neni spis SD katrou, nebo jejim modulem ...
> 
> Mne prijde hodne prapodivne, ze staci takovato trivialni uprava kodu. Mozna by bylo
> zajimavejsi vysledovat rozdil mezi puvodnim a novym resenim po prekladu.
> Ale i tak bych pozornost nasmeroval spis k tomu modulu s SD kartou (nevim proc -
> ciste subjektivni pocit) - dela to i s jinym modulem? s jinou kartou?
> :)
>  
> --------------------------
> Sam
> --------------------------
>   
>   
> Sent: Friday, February 22, 2019 at 1:59 AM
> From: "Michal Lukac" <michal.lukac na fstroj.uniza.sk>
> To: HW-news <hw-list na list.hw.cz>
> Subject: Atmega pri nizsej teplote
> Zdravim,
> 
> Mam napisany program v Atmega2560, zapisuje na SD kartu. Vsetko bezalo, az kym som
> stym neprisiel pod cca 10st.C.
> Vtedy to zacalo robit chyby – cim nizsia teplota tym bolo viac chyb az to
> prestalo fungovat.
> Ja som tu chybu nasiel a opravil takze teraz ten program bezi ako ma, ale zaujimalo
> by ma preco to zaviselo od teploty.
> Chyba bola v tom ze som mal namiesto retazca “\”   len znak ‘\’ v argumente
> fcie kde mal byt retazec. Potom ten retazec pri izbovej teplote mal nulovu dlzku a
> pri nizsej teplote tam bol nejaky znak 0xFC. Myslel som ze nejaka cast RAM je
> vadna
> a pri nizsej teplote sa necita korektne obsah ale ten program teraz bezi normalne.
> Skusal som aj na inom kuse a robilo to to iste.
> Da sa to nejak vysvetlit?
> 
> m.
> 
> _______________________________________________ HW-list mailing list - sponsored by
> www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> --------------------------------------------------------------------------------
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 





Další informace o konferenci Hw-list