اطلاعیه

Collapse
No announcement yet.

ساعت و تقویم avr

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ساعت و تقویم avr

    سلام وقتتون بخیر

    پروژه ساعت با rtc میکرو رو برنامه نوشتم با کدویژن ، توی محیط پرتیوس شبیه سازی کردم برای atmega16 کار می کنه ساعت اما برای atmega 32 کار نمی کنه ، برنامه هر دو را به یمک صورت نوشتم فقط میکرو ها رو عوض کردم کسی میدونه مشکل از چیه؟
    اینم برنامه ام


    #include <mega16.h>
    #include <stdio.h>
    #include <alcd.h>

    unsigned char Buffer[17];
    unsigned char Buffer1[17];
    unsigned char second = 20;
    unsigned char minute = 20;
    unsigned char hour = 20;
    unsigned int Y=1389,MO=11,D=11;

    void time_write(){
    sprintf(Buffer,"%02d:%02d:%02d",hour,minute,second );
    sprintf(Buffer1,"%02d:%02d:%02d",Y,MO,D);
    //sprintf(buffer,"TIME %d:%d:%d\nDATE %d/%d/%d",H,M,S,Y,MO,D);
    lcd_gotoxy(4,0);
    lcd_puts(Buffer);
    lcd_gotoxy(4,1);
    lcd_puts(Buffer1);
    }


    void date_calc(){
    unsigned int d;
    if(MO<=6) d=31;
    if(MO>=7) d=30;
    if(MO==12) d=29;
    D++;
    if(D>d){
    D=1;
    MO++;
    if(MO==13){
    MO=1;
    Y++;
    }
    }
    }

    void main(void){
    ///////////////////block 1
    lcd_init(16);
    lcd_clear();
    ///////////////////block 2
    TIMSK = 0x40;
    TIFR = 0x40;
    #asm ("sei")
    ///////////////////block 3
    ASSR = 0x08;
    TCNT2 = 0x00;
    TCCR2 = 0x05;
    ///////////////////block 4
    time_write();


    while(1);
    }

    interrupt[5]void Tik_Tik(void){
    second++;
    if(second==60){
    second = 0;
    minute++;
    if(minute==60){
    minute = 0;
    hour++;
    if(hour==24) {hour = 0; date_calc();}
    }
    }
    time_write();
    }
    سوال بعدیم اینه که اگر بخوام قابلیت تنظیم به ساعتم اضافه کنم چکار باید کنم؟

    با تشکر از همگی دوستان
لطفا صبر کنید...
X