script22 Postat Februarie 13, 2013 Partajează Postat Februarie 13, 2013 Mai intai sa va spun ce vreau sa fac. De cateva zile mi-am instalt eclipse cu plugin de avr si avr-gcc asta mai putin conteaza ce vrau sa fac este un ceas cu data cu temperatura cu alarma si cu radio avand deja un cip tea5767. LCD 2x16 , lm 35 pt temperatura tea pt radio iar ca amplificator voi folosi un integrat dintr-un monitor un tda 7496L are control volum in tensiune il voi folosi cu pwm. AM si encoder Toate le-am ingesuit pe 2 cablaje cat lcd u suprapuse chiar a iesit ok imi place si sper sa il termin cat mai repede. Saptamana asta am tot citit coduri in C++ am invatat despre el de aici http://www.tutorialspoint.com/cprogramming/index.htm lam citit de 2 3 ori cap coada si il am la favorite deoarece mi se pare interesant. Deocadata vreau sa strnag toate librariile pt pwm adc tea si rtc mai am nevoie doar de rtc si dupa am sa ma joc putin cate putin cu el pana incepe sa prinda forma zic asta ca cunsc php binisor si sa ma joc in main cu junctii predefinite nu ar fi asa greu . Daca aveti un program exact pt winavr care se compileaza fara surprise neplacute asa am gasit si pe net bucati de cod exemple pt alte compilatoare C++ va fi ori cum foarte mult de munca cu tot ce vreau eu sa fac dar asa sper sa invat C++. Mai departe sunt sigur ca ma descurc cu for(;;) MS MS PT SUSTINATORI. Link spre comentariu
script22 Postat Februarie 13, 2013 Autor Partajează Postat Februarie 13, 2013 am reusit cel mai greu a fost sa formatez timpu intrun singur char HH:MM:SS a si am mai avut o problema daca ati mai intalnit-o careva rog putine comenturi nu am putut folosi timmer0 in mod asincron si anume nu am putut seta ASSR |= (1<<AS0); gcc error nu gaseste acel bit si am folosit timmer2 ASSR |= (1<<AS2); a mers din prima bininteles #define F_RTC 32768// Define delay#define PERIOD_MS 1000ISR(TIMER2_COMP_vect) { // Increment time if(++tmr_sec == 60) { tmr_sec = 0; if(++tmr_min == 60) { tmr_min = 0; if(++tmr_hour == 24) { tmr_hour = 0; tmr_days++; } } } }si void tmr_init(void) { /* Start timer 0 with clock prescaler CLK/1024 and CTC Mode ("Clear Timer on Compare")*/ /* Resolution is 32.25 ms */ TCCR2 = (0<<FOC2)|(0<<WGM20)|(0<<COM21)|(0<<COM20)|(1<<WGM21)|(1<<CS22)|(1<<CS21)|(1<<CS20); // Reset time TCNT2 = 0; // Calculate and set period OCR2 = (uint16_t)(((F_RTC/1024)*PERIOD_MS)/1000) - 1; // Enable interrupt on compare match TIMSK |= (1<<OCIE2); // Select asynchronous timer 0 operation to use external 32.768 kHz crystal ASSR |= (1<<AS2); } si mainu char timeCAST[8]; lcd_clrscr(); for(;;) { sprintf (timeCAST, "%02d:%02d:%02d",tmr_hour,tmr_min,tmr_sec); lcd_gotoxy(8,0); lcd_puts(timeCAST); } he he nu a fost greu am invatat si cum se configureaza bitii pt timmer am invatat si pwm cum sta treaha cu tote car ar ficeva nelamuri legate de compare1a si compare1b unde stiam initial ca aici ar fi pwm pt atmega 16 portd4 si portd5 mai e si portb3 care si ala scoate pwm care e diferenta intre ele ori cum nu am nevoie am resuit cu compare1a si compare1b dar asa pt cunostintele mele cine stie cum sta treaba sa lase un coment. maine urmeaza rotary encoder care as vrea sa il folosesc cu externel int si nu cu timmer cu folosesc majoritatea. 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