دیگه کلافه شدم :angry:
یه ساعت با مگا 16 و DS1307 ساختم که دماسنج هم داره. قبل از برنامه نویسی ساعت هیچ مشکلی نبود و دما و سگمنتها عالی کار میکردن اما از وقتی که برنامه ساعت اضافه شده نور سگمنتها خیلی خیلی کم شده.
هر کاری که به ذهنم اومد کرد درس نشد :angry:
دلایهارو کم و زیاد کردم نتیجه نداد .
اما وقتی دلایهارو بیش از اندازه زیاد کردم مشکل رفع شد اما نمایش به هم ریخت. آخه دلایها خیلی بالا بود.
اینم کد
تو رو خدا به دادم برسین قبل اینکه دیوونه بشم :twisted:
یه ساعت با مگا 16 و DS1307 ساختم که دماسنج هم داره. قبل از برنامه نویسی ساعت هیچ مشکلی نبود و دما و سگمنتها عالی کار میکردن اما از وقتی که برنامه ساعت اضافه شده نور سگمنتها خیلی خیلی کم شده.
هر کاری که به ذهنم اومد کرد درس نشد :angry:
دلایهارو کم و زیاد کردم نتیجه نداد .
اما وقتی دلایهارو بیش از اندازه زیاد کردم مشکل رفع شد اما نمایش به هم ریخت. آخه دلایها خیلی بالا بود.
اینم کد
کد:
PORTB = 0x00;
delay_us(300);
PORTD = 0;
PORTB = ~(segment[Temp / 10 / 10]);
PORTD.7 = ledDama;
delay_us(500);
PORTB = 0x00;
delay_us(300);
PORTD = 1;
PORTB = ~(segmentp[Temp / 10 % 10]);
PORTD.7 = ledDama;
delay_us(500);
PORTB = 0x00;
delay_us(300);
PORTD = 2;
PORTB = ~(segment[Temp % 10]);
PORTD.7 = ledDama;
delay_us(500);
//dama--------------------------------------
rtc_get_time (&hor, &min, &sec);
rtc_get_date(&wday, &day, &month, &year);
//Tarikh------------------------------------
//sal
PORTB = 0x00;
delay_us(300);
PORTD = 3;
PORTB = ~(segment[year / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(300);
PORTD = 4;
PORTB = ~(segment[year % 10]);
delay_us(500);
// mah
PORTB = 0x00;
delay_us(300);
PORTD = 5;
PORTB = ~(segment[month / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(300);
PORTD = 6;
PORTB = ~(segment[month % 10]);
delay_us(500);
//rooz
PORTB = 0x00;
delay_us(300);
PORTD = 7;
PORTB = ~(segment[day / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(200);
PORTD = 8;
delay_us(200);
PORTB = ~(segment[day % 10]);
delay_us(500);
//rooze hafte
PORTC = weekday[wday];
//Saat--------------------------------------
//second.........................
PORTB = 0x00;
delay_us(200);
PORTD = 9;
delay_us(200);
PORTB = ~(segment[hor / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(200);
PORTD = 10;
delay_us(200);
PORTB = ~(segment[hor % 10]);
delay_us(500);
//Minit.........................
PORTB = 0x00;
delay_us(200);
PORTD = 11;
delay_us(200);
PORTB = ~(segment[min / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(200);
PORTD = 12;
delay_us(200);
PORTB = ~(segment[min % 10]);
delay_us(500);
//Hours..........................
PORTB = 0x00;
delay_us(200);
PORTD = 13;
delay_us(200);
PORTB = ~(segment[sec / 10]);
delay_us(500);
PORTB = 0x00;
delay_us(200);
PORTD = 14;
delay_us(200);
PORTB = ~(segment[sec % 10]);
delay_us(500);





دیدگاه