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



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Jan 01, 2013 12:17 pm Naslov sporočila: POWERON RESET vsv tipka reset |
|
|
Novo leto, in novi zapleti z mojim atmelom.
Atmel se drugače obnaša, v kolikor izklopim in ponovno vklopim na napetost, in drugače, če pritisnem tipko reset.
Če pritisnem tipko reset, dela tako, kot sem programiral,
Če pa naredim izklop-vklop 220VAC pa začne, kot sem programiral, a kasneje zabluzi.
Prilagam izpis monitorja pri enem in drugem slučaju:
Tole je v redu po tipki reset:
Koda: |
12 Reset.
Priklop GSM-a in termometrov, wait 5.
Nadaljujemo.
Telefoni:
1 0038641988440
2 0000000000000
3 0000000000000
4 0000000000000
5 0000000000000
6 0000000000000
7 0000000000000
8 0000000000000
9 0000000000000
10 0000000000000
|
in tole po izklop-vklop 220vac
Koda: |
<0> 12 Reset.
Priklop GSM-a in termometrov, wait 5.
Nadaljujemo.
<0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0><0> |
Imate, kako idejo, kje izkati črva? |
|
Nazaj na vrh |
|
 |
silvo_v Član

Pridružen-a: Pon 11 Jul 2005 22:00 Prispevkov: 146 Aktiv.: 0.62 Kraj: Domžale
|
Objavljeno: Tor Jan 01, 2013 12:34 pm Naslov sporočila: |
|
|
Vrednosti spremenljivk v RAM-u po resetu ostanejo nespremenjene, za razliko od izklopa napajanja.
Zato je po resetu potrebno pobrisati RAM, ali pa inicializirati spremenljivke, zaradi katerih prihaja do težav.
Silvo |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Jan 01, 2013 12:46 pm Naslov sporočila: |
|
|
Hmm, bom seveda iskal tudi v tej smeri.
Toda izrecno v ta namen ima Bascom ukaz
, ker sicer ima predvideno brisanje rama za vsak reset. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.79 Kraj: Mengeš
|
Objavljeno: Tor Jan 01, 2013 3:38 pm Naslov sporočila: |
|
|
Bascom po mojem znanju itak vse spremenljivke v ukazu dim privzeto postavi na nulo, tako da posebej določanje ni potrebno, razen če imamo na začetku omenjeni ukaz $noramclear, ja. Potem teoretično obdrži vredosti. Pojavi pa se vprašanje, kaj naredi, če ta ukaz obstaja, pa pride do izpada napajanja lahko da jih v tem primeru NE postavlja na nič, kar pomeni čudne vrednosti spremenljivk. Poskusi kaj v tej smeri. Avr ne ve, kakšnega tipa je reset, torej bi moral kaj čarati v tej smeri. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Tor Jan 01, 2013 3:58 pm Naslov sporočila: |
|
|
Nekaj je hudo narobe s programom, če tip reseta vpliva na to...
In nima nobene veze, če na začetku postavi spremenljivke na 0 ali ne. Zanašati se na to je itak naravnost briljantna ideja  _________________ Tule nisem več aktiven. |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.79 Kraj: Mengeš
|
Objavljeno: Tor Jan 01, 2013 4:16 pm Naslov sporočila: |
|
|
Zakaj? Veliko kompilerjev višjega nivoja imajo definirano vrednost novo dimenzionirane spremenljivke, ponavadi nič. Problem nastane, kot sem rekel, če mu rečeš da naj obdrži staro vrednost...sicer jaz raje delam z eepromom kot s noramclear, če je le možno.
Tip reseta vpliva toliko da reset s tipko obdrži ram tak, kot je, power-off pa ... |
|
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: Tor Jan 01, 2013 5:00 pm Naslov sporočila: |
|
|
gumby je napisal/a: |
Nekaj je hudo narobe s programom, če tip reseta vpliva na to...
In nima nobene veze, če na začetku postavi spremenljivke na 0 ali ne. Zanašati se na to je itak naravnost briljantna ideja  |
Tako je. Reset vektor je vedno na lokcaiji 0x0 ne glede na to, kako je bil reset izveden. Program se vedno začne tam. Vrednosti v SRAMU oz. v registrih so ob resetu nedefinirane. Torej nekaj jemati tam ven preden tja pride pravi podatek je velika napaka. Vrsto reseta sicer lahko določiš s postavljenimi zastavicami MCUCSR registra, a same zastavice ne spreminjajo toka programa. (to morda lahko počne koda v kakem višjenivojskem jeziku) _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.79 Kraj: Mengeš
|
Objavljeno: Tor Jan 01, 2013 7:32 pm Naslov sporočila: |
|
|
Citat iz pomoči bascoma:
Koda: |
Normally the SRAM is cleared in the initialization code. When you don't want the SRAM to be cleared(set to 0) you can use this directive.
Because all variables are automatically set to 0 or ""(strings) without the $NORAMCLEAR, using $NORAMCLEAR will set the variables to an unknown value. That is, the variables will probably set to FF but you cannot count on it. |
Torej, bascom postavi samodejno vse spremenljivke na nulo ob ODSOTNOSTI omenjenega ukaza, sicer pa ne. Omenjeno je tudi opozorilo glede nedefiniranega stanja ob power-on resetu.
HELP pa omeni tudi tole:
Koda: |
When you have a battery back upped circuit, you do not want to clear the RAM at start up. So that would be a situation when you could use $NORAMCLEAR. |
torej, zadeva ni namenjena resetu v primeru odsotnosti napajanja ampak samo primerom, kjer avr pošljemo spat ali kaj podobnega... (beri imamo na voljo rezervno napajanje). |
|
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: Tor Jan 01, 2013 7:47 pm Naslov sporočila: |
|
|
To nima nobene veze s težavo, ki jo ima Vilko. Pravzaprav sploh ni važno kako programsko okolje je uporabljeno. Arhitektura mikrokontrolerja je anaka. Če so v programu uporabljene konstantne vrednosti, se te prenesejo v registre oz SRAM iz programskega pomnilnika. Če gre za spremenjive vrednosti je te vrednosti potrebno pač dati v eeprom. Ob inicializaciji - torej resetu pa te vrednosti prebrati v SRAM oz registre. Programsko je potrebno tudi predvidet prevzete vrednosti, v koliko so slučajno shranjene vrednosti izven mej. (recimo stanje v eepromu preden so vrednosti sploh shranjene, oz ob morebitnem "zrušenem" eepromu) _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.79 Kraj: Mengeš
|
Objavljeno: Tor Jan 01, 2013 8:47 pm Naslov sporočila: |
|
|
Hja, lahko da ima veze...Namreč, kolikor je znano on NE shrani spremenljivk v EEPROM, kar ob resetu povzroči kaos. Zelo hitro spreminjajoče spremenljivke je težko shranjevati v EEPROM, saj bi ga uničil zelo hitro. V takem primeru bi bilo bolje uporabiti zunanji EEPROM ali RAm z baterijsko podporo.
Problem leži ravno v tem, da se privzete vrednosti NE definirajo, saj naj bi se ohranile trenutne.
Mislim da je tukaj rešitev v preprečitvi reseta na sploh ali pa v uporabi zunanjega spomina za kritične spremenljivke. Jaz za merilnik nivoja nafte npr. kritične spremenljivke shranjujem v RAM čipa DS1307 (RTC) in ker ima ta baterijsko podporo, sem zmagal. Ob resetu jih enostavno preberem od tam, pa je. |
|
Nazaj na vrh |
|
 |
gumby Član


Pridružen-a: Sob 28 Apr 2007 12:32 Prispevkov: 4066 Aktiv.: 18.41
|
Objavljeno: Tor Jan 01, 2013 8:55 pm Naslov sporočila: Re: POWERON RESET vsv tipka reset |
|
|
Pusti zdaj zunanji pomnilnik...
vilko je napisal/a: |
Atmel se drugače obnaša, v kolikor izklopim in ponovno vklopim na napetost, in drugače, če pritisnem tipko reset. |
_________________ Tule nisem več aktiven. |
|
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: Tor Jan 01, 2013 9:31 pm Naslov sporočila: |
|
|
protoncek,
Ne pozaš aritekture mikrokontrolerja, zato se s tabo ne da priti do konca.
Tako, da tvojih sporočil ne bom več komentiral.
Vilko,
Bascoma ne pozam, ampak mikrokontroler se popolnoma enako obnaša bilo katero programsko orodje uporabiš. AVR-ji imajo 32 splošno namenskih registrov, Koliko je SRAM-a zavisi od samega mikrokontrolerja. SRAM se uporablja tudi za sklad.
Vrednosti v SRAMU oz v registrih so po resetu nedefinirane. V inicializacijski rutini zato ne smeš jemati iz rama niti iz registrov vrednosti katere niso bile pred tem določene. Med resetom s tipko oz power on resetom ni nobene razlike. . Po kakeršnem koli resteu se začne program odvijati na lokaciji 0x0. V obeh primerih so vrednosti v omenjenem pomniliku nedefinirane. V tvojem primeru je zelo verjetno, da ena rutina spreminja tok programa takoj v reset rutini. To se lahko naredi s kontrolo zastavic WDRF, BORF, EXTRF, PORF registra MCUCSR. Slednji dve se postavljata od zunanjem oz power on resetu. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
protoncek Član

Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 42.79 Kraj: Mengeš
|
Objavljeno: Tor Jan 01, 2013 9:54 pm Naslov sporočila: |
|
|
Res je, definitvno ne toliko kot ti. Samo dejstvo ostaja, da ob uporabi ukaza noramclear vse spremenljivke ostanejo nedotaknjene, torej jih v tem primeru AVR NE spreminja. Seveda govorim o resetu brez izgube napajanja. Kako bascom (ali AVR) to izvede ne vem, vem samo da deluje. |
|
Nazaj na vrh |
|
 |
vilko Član



Pridružen-a: Pet 13 Feb 2004 10:26 Prispevkov: 3360 Aktiv.: 14.18 Kraj: Dragomer
|
Objavljeno: Tor Jan 01, 2013 9:56 pm Naslov sporočila: |
|
|
Ni torej nobene dobre razlage za moj problem, ki se je pojavil sedaj prvič v moji praksi.
Rekel bi, da moram pogledat druga vezja, ki so še na tiskanem vezju, in bi lahko interferirale pri poweron, med tem, ko pri tipki reset ne interferirajo.
Bom javil, kaj bom našel.Danes se s problemom nisem več ukvarjal. |
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Tor Jan 01, 2013 11:15 pm Naslov sporočila: |
|
|
Kateri uC, kakšni so fuse biti, napajalna napetost, kam je vezan RESET, uporabljaš zunanji kristal?
Kakšen je program ?
Možna je tudi HW težava. V mojem primeru je šlo za baterijsko napajano napravo. Vezje z uC je imelo zelo majhno porabo, zato se je občasno zgodilo, da napajalna napetost zaradi kondenzatorja v napajanju ni dovolj upadla, da bi power on reset uC zbudil iz režima izklopa. |
|
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: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|