Projekt hodin s ATmega8 a se zobrazením na 7-segmentovém LCD

postavil jsem tyto hodiny a po naprogramování ATmegy8 nechodí jak mají - na segmentovce bliká postupně / z prava do leva / jedna číslice / nula / - jako světelný had. Zapojení jsem několikrát procházel, mám podezření na hex soubor nebo na špatně nastaveny fusses v PonyProg2000, programuji pomocí STK200 a pojistky jsou nastaveny takto : SPIEN, BOOTSZ1, BOOTSZ0, CKSEL3, CKSEL2, CKSEL1 jsou zaškrtnuty. Kde je problém ? Při programování jsem si už taky zamknul Atmegu a musel ji léčit sic úspěšně,ale stále dál nevím, kde je chyba !? Díky za pomoc

:arrow_right: administrator: přesunuto z "Elektronika s mikrokontroléry, procesory"

:arrow_right: administrator: přejmenováno z "hodiny s ATmega8"
Hodiny s ATmega8 + program C.doc (73 KB)

Máš nastaven externí oscilátor, procesor by ti neměl pracovat vůbec, ani by neměl bez externího zdroje hodin (to není krystal) odpovídat programátoru.
Nastavení pro krystal je:
CKOPT = 0 (zaškrtnuto)
CKSEL3:1 = 111 (nezaškrtnuto)
CKSEL0 = 1, SUT1:0 = 11

Ten program v příloze není celej, moc toho tam nevyčtem.

tady je odkaz na originál stránku
daqq.eu/index.php?show=prj_avr_clock_1
a opět jsem si zablokoval megu - zkoušel jsem jiné nastavení fusses, až ho vyléčím , tak se pokusím nastavit pojistky jak uvádíte díky

Jak ji léčíš? :slight_smile:
Stačí připojit na XTAL1 nějaký zdroj hodin. Klidně to může být jiný mcu, ve kterém je naprogramované blikátko s maximální rychlostí a pracuje na interním RC (aby nebylo nutné při programování měnit fuses). Mě se podařilo najít na nějaké staré desce krystalový oscilátor (což není krystal), ten je na to ideální.
Jakmilé máš zdroj hodin, mcu zase začne s programátorem komunikovat.

tady je vynikající článek o ATmega8
cs.wikibooks.org/wiki/Programuje … D_pojistek

léčím ji pomocí druhé ATmegy8, dobře je vše popsáno v článku, do doktora je třeba nahrát léčící program !!! vše dobře propojit, připojit napájecí napětí pro procesory 5V a 12V léčící napětí, zavřít oči a stisknout tlačítko u reset doktora. Pokud je vše OK, tak je mega taky OK.

tak bohužel, i po dalším pokusu nezdar. Můžete mi prosím napsat, které pojistky mají být zaškrtnuty a které ne ? asi jsem dost dobře nerozuměl /nepochopil/ piity yho

Proměnné min_1 a hour_1 musejí mít v deklaraci prefix “volatile”. Jsou totiž použité v přerušení i mimo něj.

Nejdřív se podívej, jesli máš mcu v továrním nastavení, vypadá asi jako “rc osc.gif”. Můžou tam bejt odlišnosti, důležitý jsou SUT, CKSEL a CKOPT.
Nahraj tam blikátko s frekvencí 1Hz. Musí to blikat správně rychle.

Pak přenastav pojistky na “kryst osc.gif”. Blikátko se 14x zrychlí. Jesli ne, něco je špatně. Nakonec tam nahraj hodiny.
kryst osc.gif
rc osc.gif

tovární nastavení je OK, ale můžete mi dát zapojení a program na to blikátko,hledám avšak nenacházím :frowning: díky

Zapojení? Připojit diodu s odporem snad zvládněš ne?
Na kterej pin uvidíš v kódu.
main.c (1.06 KB)

když se nedaří, tak se nedaří, a nedaří se mi převéct soubor do hex, abych mohl vyzkoušet megu na 1Mhz

Jesli máš avr studio a gcc(winavr), tak to musí jít přeložit.
C_blikatko_delay.hex (349 Bytes)

zkoušel jsem to přes MPASMWIN a hlásilo to po ukončení 26 chyb, navíc přípona byla LST pro simulátor.

MPASMWIN??? Není to náhodou překladač assembleru pro picy (od microchipu)?
Tím program v C pro avr (od atmelu) přeložíš vskutku těžko.

podařilo se hex blikátka nahrát a mega bliká cca 1x za sekundu. Jakmile jsem chtěl přeinstalovat pojistky na rychlejší frekvenci, PonyProg zahlásil device missing or unknown device (-24). Co to může znamenat ?

celkom mile, ze? :slight_smile:

ale uz sa cez to postupne prepracuva. Drzim palce :slight_smile:

janicek: To se stalo až po změně pojistek? To by taky měl mcu přestat blikat. Pokud ano, znamená to, že ti nejede oscilátor. Buď blbě pojistky, nebo se nerozeběhne oscilátor. Občas za to můžou kondíky u krystalu. Pokud tam máš 12pF jako ve schématu, můžeš zkusit zvýšit na na 22 nebo 33pF.

Martin: to rozhodně, ale zas to naštěstí netrvalo moc dlouho :slight_smile:.

u blikátka jsem žádné kondy a krystal neměl, zapojení +5V na 7 pin, - na 8 pin, Led přes 330 ohm z 15 pinu na - pol. A mega zahlásila chybu až po změně pojistek a pokusu je nahrát.

Ty chceš aby se mi něco stalo viď :open_mouth: . Ale to se ti nepovede :wink: .

Když přenastavíš pojistky z interního oscilátoru na krystal, tak tam samozřejmě musíš mít ten krystal připojený.
pin7 a pin20 (piny spojené): +5V
pin8 a pin22 (piny spojené): GND
Mezi +5V a GND vložit kondik 100nF co nejblíže mcu.
LED máš dobře.
Krystal mezi piny XTAL1(pin8) a XTAL2(pin9) včetně kondiků jak to máš ve schématu.
daqq.eu/img/projects/sch_hodiny_avr.gif

:arrow_right: administrator: přiloženy externí soubory
sch_hodiny_avr.gif

znovu jsem opravil megu, nahrál blikátko a zapojil i krystal s kondíky, tak jako ve schématu.Při interním oscilátoru Led blikala rychleji než včera a tak jsem přenastavil pojistky - výsledek je zase chyba device missing …(-24).