Написал я программу для часов.
Правда вывод информацыы пока не сделан (Выбираю индикаторы)
Основной минус этой программы, что функция Main представляет из себя бесконечный цыкл, а следственно вся вычислительная мощь уходит на его работу...
Цитата:
#include <mega16.h>
//Объявляем глобальные переменные. Переменную таймера, секундную, минутную и часовую переменную - соответственно.
char Timer;
char Second;
char Minute;
char Hour;
void main(void)
{
//Запускаем таймер с коэф. делени 1024. При кварце в 16Мгц он будет переполнятся 61Раз (Таймер на 8 Бит).
TCCR0 = 0b00000101;
//Когда таймер переполнится, будет установлен 0 бит регистра TIFR и цыкл будет покинут.
while (!(TIFR&0x01));
//Так как таймер переполнился, прибавим к переменной Timer - 1.
Timer++;
//И обнулим бит переполнения таймера путем перезаписи.
TIFR |=1<<0;
//Когда в переменной Timer будет значение 61, прибавим к переменной Second 1 (В секунду таймер переполняется 61 раз!).
//И обнулим переменную Timer для дальнейшей работы.
if (Timer==61) {Second++; Timer=0;};
//При достижении переменной Second 60 Секунд, к переменной Minute будет приплюсовываться 1.
//Переменная Second - очистица.
if (Second==60) {Minute++; Second=0;};
//При достижении переменной Minute 60 Минут, к переменной Hour будет приплюсовываться 1.
//Переменная Minute - очистица.
if (Minute==60) {Hour++; Minute=0;};
//Переменная Hour обнуляется по достижению 24 Часов.
if (Hour==24) {Hour=0;};
//Перезапускаем функцию Main.
main();
}
|
Покритекуйте. Что можно бы добавить, что убавить. Какие индикаторы с шифровкой предложите?