Vizitator aaaaaa Postat Martie 2, 2012 Partajează Postat Martie 2, 2012 Am programat cu noua valoare pt delay, dar inca are unele dati cand nu pleaca. Ar trebui si mai mare?Inca o chestie: pt setare uneori butoanele trebuie sa le apas de cate 2-3 ori ca sa incrementeze/decrementeze valorile si uneori secundele nu se scurg liniar, din aprox 10 in 10 sec se decrementeaza mai repede decat ar trebui(asta ochiometric). Link spre comentariu
edy_wheazel Postat Martie 3, 2012 Partajează Postat Martie 3, 2012 Nu inteleg de ce proiecte atat de simple sunt proiectate sa functioneze cu ceas de 16MHz. Probabil cel mai ok (din punct de vedere al consumului) era sa modifici codul sa functioneze corect cu ceasul intern de 1MHz. Probabil aplicatiile sunt realizate pe placi de dezvoltare care au un cristal de valoare mare, pentru a acoperii o gama larga de aplicatii. Dupa ce au scris codul care a functionat pe placa nu au mai modificat programul pentru o valoare mai mica a cuartului. Link spre comentariu
Vizitator aaaaaa Postat Martie 8, 2012 Partajează Postat Martie 8, 2012 Vad ca nimeni nu a mai intampinat problema asta a mea, cu neinitializarea LCD...in fine, voi reface proiectul.Mai am o intrebare: ce linii de cod ar trebui modificate pentru a-l face sa numere UP dupa ce a ajuns la 00:00:00 ?? Link spre comentariu
Vizitator aaaaaa Postat Martie 9, 2012 Partajează Postat Martie 9, 2012 Vad ca nimeni nu a mai intampinat problema asta a mea, cu neinitializarea LCD...in fine, voi reface proiectul.Mai am o intrebare: ce linii de cod ar trebui modificate pentru a-l face sa numere UP dupa ce a ajuns la 00:00:00 ??LE:am reusit sa il fac sa numere up dupa ce trece prin 0, trebuia modificat ISR-ul din subsolul programului principal.Din ce am mai citit, problema neinitializarii LCD provine de la o secventa incorecta de init, eventual si delay-uri insuficiente.Intrebare pentru DarkAngel_Bv, cum ai reusit doar 1 sec eroare dupa 2 zile? Ca in varianta originala cu 16 MHz vad ca ia vreo 10 secunde dupa o ora. Link spre comentariu
Marele Savant Postat Martie 9, 2012 Partajează Postat Martie 9, 2012 Am realizat urmatorul montajel cu atmega8, functioneaza OK, mai putin faptul ca e nemaipomenit de lenes, ia comenzile cu foarte mare intarziere, dureaza cam un minut pana porneste, si numara o secunda in vreo 7-8...am folosit quartz si de 4 si de 16 Mhz, am lasat si fara quartz, nici o schimbare. Stie cineva care ar putea fi cauza leneviei carabusului atmega8?http://extremeelectronics.co.in/avr-pro ... 8-avr-mcu/ Tot am zis sa vad ce e cu atmel-urile asa ca am terminat acest montaj acum citeva ore. Se comporta exact cum spuneti dv., dar dupa setarea fuse bits low =FF si high=C9 si-a revenit si merge foarte OK, cu cristal de 16mhz! Ce nu-mi place la temporizator este ca nu memoreaza durata de temporizare setata, trebuie inscrisa inainte de fiecare actionare! Apropo, la ceata care este inca in capul meu la capitolul fuse bits ma astept sa reusesc sa le blochez cit de curind. Pentru deblocare m-am gindit la aplicatia de aici: http://diy.elektroda.eu/atmega-fusebit-doctor-hvpp/ A fost testat de cineva, ce parere aveti? Un tip comenteaza ca ar fi fake pentru a bloca controlerele?? Link spre comentariu
Vizitator aaaaaa Postat Martie 10, 2012 Partajează Postat Martie 10, 2012 Marele Savant, felicitari pentru montaj.Al meu avea eroare f mare si am reusit sa o depistez: Target Timer Count = (1 / Target Frequency) / (1 / Timer Clock Frequency) - 1 Problema era ca din linia de cod respectiva din program nu se scazuse 1.Asadar, linia OCR1A=250; trebuie sa devina OCR1A=249; din calculele mele.Din cate am inteles, count-ul cu nr "0" dureaza un tact de ceas, de aceea se ia in considerare, de unde si -1 in formula.Eroarea care o am acum este exclusiv din cauza xtalului.Caut sa procur din comert un oscilator integrat de 16 MHz, dar nu prea gasesc. Stie careva vreun magazin care comercializeaza asa ceva? Link spre comentariu
Marele Savant Postat Martie 10, 2012 Partajează Postat Martie 10, 2012 Sincer nu am cronometrat cit timp dureaza un minut! Am sesizat numai ca aveam aceeasi intirziere mare pe care o sesizati dv in primul post al topic-ului care a disparut dupa setarea fuse bits. Acuma sint la job, miine voi cronometra daca masoara corect timpul. Link spre comentariu
dodo007 Postat Aprilie 11, 2012 Partajează Postat Aprilie 11, 2012 Apropo, la ceata care este inca in capul meu la capitolul fuse bits ma astept sa reusesc sa le blochez cit de curind. Pentru deblocare m-am gindit la aplicatia de aici: http://diy.elektroda.eu/atmega-fusebit-doctor-hvpp/ A fost testat de cineva, ce parere aveti? Un tip comenteaza ca ar fi fake pentru a bloca controlerele??Scuze pentru raspunsul intirziat. Am construit eu montajul de mai sus pentru deblocare Atmega si functioneaza ireprosabil. Cei drept l-am testat numai cu citeva atmega8.Cu respect. Link spre comentariu
DarkAngel_Bv Postat Aprilie 14, 2012 Partajează Postat Aprilie 14, 2012 Vad ca nimeni nu a mai intampinat problema asta a mea, cu neinitializarea LCD...in fine, voi reface proiectul.Mai am o intrebare: ce linii de cod ar trebui modificate pentru a-l face sa numere UP dupa ce a ajuns la 00:00:00 ??LE:am reusit sa il fac sa numere up dupa ce trece prin 0, trebuia modificat ISR-ul din subsolul programului principal.Din ce am mai citit, problema neinitializarii LCD provine de la o secventa incorecta de init, eventual si delay-uri insuficiente.Intrebare pentru DarkAngel_Bv, cum ai reusit doar 1 sec eroare dupa 2 zile? Ca in varianta originala cu 16 MHz vad ca ia vreo 10 secunde dupa o ora.Pai cu frecventa de 1 Mhz interna si delay de 1000 uS asta a fost rezultatul. Am facut si testul urmator:- Lasat fusebitii originali si trecut in program 8000000 ca frecventa. Dura 8 secunde pana numara o secunda deci probabil asta era si problema initiatorului.Prima data afisam pe display secundele, dar la un moment dat ajunsese sa fie cu minus (variabila era integer).Cand ai nevoie de timpi foarte precisi (aici ma refer la un ceas spre exemplu) cel mai usor este sa folosesti un cip dedicat cu quartz propriu conectat prin I2C.in felul asta stii sigur ca interrupts-urile sau alte delay-uri din program nu iti afecteaza acuratetea. Link spre comentariu
Vizitator aaaaaa Postat Mai 26, 2012 Partajează Postat Mai 26, 2012 Montajul meu acum functioneaza ireprosabil. In primul rand, //Set up the timer1 as described in the //tutorial TCCR1B=(1<<WGM12)|(1<<CS11)|(1<<CS10); OCR1A=250;acest cod era gresit, valoarea OCR1A trebuind sa fie 249.(Am nevoie de divizare cu 250 ca sa fac intrerrupts la 1 KHz, dar OCR1A porneste de la 0. Deci De la 0 la 249 = 250). Aceasta mica eroare imi dadea 14.4 secunde/ora eroare. In al doilea rand, am montat Xtal de 16 Mhz iar pe una dintre ramurile acestuia, in loc de capacitati fixe, am pus un trimmer. Ascultand oscilatorul in Yaesu FT-857, am reusit din trimmer sa il aduc cat de cat in jurul 16000000. Probabil eroarea actuala este de +- 100 Hz. Pasul urmator ar fi sa incerc o interfatare cu un RTC sau cu DCF77 din Frankfurt. Daca a realizat cineva asa ceva, rog detalii. De asemenea, am facut si niste mici modificari pentru montare buzzer, iesire de 1 Hz, iesire de sarcina cand numaratoarea inversa ajunge la 0, precum si clock, folosind montajul ca un ceas digital cu 24 h, acesta setandu-se in acelasi mod cum se seteaza timerul. Mai vreau sa fac o alimentare din baterie, care sa tina minte timerul/clockul in cazul unei deconectari de la alimentarea externa. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum