سلام من یه مدار تو پروتیوس بستم که برای ساعت از ds1307 استفاده کردم ولی دقیق کار نمیکنه وعقب میکشه مشکل چیه (توی اون کادر مربوط بهds1307که تو پروتیوس نشون میده ثانیه از مثلا 40 میپره به 10 )مشکل کجاست
متشکرم
متشکرم
/***************************************************** CodeWizardAVR V2.05.3 Standard Author : Hamid Chip type : ATmega8 Program type : Application AVR Core Clock frequency: 8.000000 MHz *****************************************************/ #include <mega8.h> #include <delay.h> #include <stdio.h> // I2C Bus functions #asm .equ __i2c_port=0x15 ;PORTC .equ __sda_bit=4 .equ __scl_bit=5 #endasm #include <i2c.h> // DS1307 Real Time Clock functions #include <ds1307.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x12 ;PORTD #endasm #include <lcd.h> // Declare your global variables here char lcd1[9]; char lcd2[16]; char lcd3[7]; void main(void) { unsigned char h,m,s; unsigned char day,month,year; unsigned char week; ACSR=0x80; i2c_init(); rtc_init(0,0,0); lcd_init(16); while (1) { rtc_get_time(&h,&m,&s); rtc_get_date(&week,&day,&month,&year); sprintf(lcd1,"%u:%u:%u",h,m,s); sprintf(lcd2,"%u/%u/%u",day,month,year); sprintf(lcd3,"week:%u",week); lcd_clear(); lcd_gotoxy(0,0); lcd_puts(lcd1); lcd_gotoxy(10,0); lcd_puts(lcd3); lcd_gotoxy(0,1); lcd_puts(lcd2); delay_ms(250); }; }
دیدگاه