سلام
من برنامه ساعت در مگا8 با کریستال ساعت 32.768نوشتم اما نمیتونم 1 دقیقه رو درست کنم این مسله تو مگا16 خیلی بهتر عمل میکنه یا بهتر بگم درست کار میکنه اما در مگا 8 نه
اگر میشه راهنماییم کنینن
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port = 0x12;
#endasm
#include <Lcd.h>
eeprom unsigned char ond=1 , onc=2 , day=1,rr,onm=0 ;
unsigned char sec=0 , min=0 , hr=0 , replay=0 ,clk=1;
unsigned char lcd_buff[16],str[16],h[16],m[8],on[16],r[16];
int i;
interrupt [TIM2_OVF] void timer2_ovf_isr(void){
if(sec++ == 60){
sec = 0;
if(min++ == 59){
min = 0;
clk++;
//cllk++;
if(hr++ == 23){
hr = 0;
if(day++ == 31){
day = 1;
}
}
}
}
}
void main() {
PORTC=0X0F ;
DDRC=0X00;
PORTB=0x00;
DDRB=0x02;
lcd_init (16);
ASSR = 0X08;
TCCR2 = 0X05;
TCNT2 = 0x00;
OCR2 = 0x00;
TIMSK = 0x40;
#asm("sei"
;
while(1){ }
من برنامه ساعت در مگا8 با کریستال ساعت 32.768نوشتم اما نمیتونم 1 دقیقه رو درست کنم این مسله تو مگا16 خیلی بهتر عمل میکنه یا بهتر بگم درست کار میکنه اما در مگا 8 نه
اگر میشه راهنماییم کنینن
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#asm
.equ __lcd_port = 0x12;
#endasm
#include <Lcd.h>
eeprom unsigned char ond=1 , onc=2 , day=1,rr,onm=0 ;
unsigned char sec=0 , min=0 , hr=0 , replay=0 ,clk=1;
unsigned char lcd_buff[16],str[16],h[16],m[8],on[16],r[16];
int i;
interrupt [TIM2_OVF] void timer2_ovf_isr(void){
if(sec++ == 60){
sec = 0;
if(min++ == 59){
min = 0;
clk++;
//cllk++;
if(hr++ == 23){
hr = 0;
if(day++ == 31){
day = 1;
}
}
}
}
}
void main() {
PORTC=0X0F ;
DDRC=0X00;
PORTB=0x00;
DDRB=0x02;
lcd_init (16);
ASSR = 0X08;
TCCR2 = 0X05;
TCNT2 = 0x00;
OCR2 = 0x00;
TIMSK = 0x40;
#asm("sei"

while(1){ }
دیدگاه