Atmega pri nizsej teplote
Michal Lukac
michal.lukac na fstroj.uniza.sk
Pátek Únor 22 22:22:29 CET 2019
Nepouzite piny su zapojene nikam - vlastne len k pin liste ale k nej uz nic.
DIDR to som nevypinal. takze to bralo hodnotu s pinov.
To strchr(filepath, '/') to je dobre napisane, to uz je v tej fcii kde ma
byt filepath (to co som zadal ja) a hlada tam znak '/'
m.
>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
>
>
Další informace o konferenci Hw-list