Свежие обсуждения
Микроконтроллеры

Помогите написать программу цифрового таймера

1 9

Мне понадобился таймер для упарвления УФ лампами для засвечивания фоторезиста.
Схема устройства имеется, имеется также под нее прошивка более-менее рабочая, но содержащая некоторые неточности и жестко привязаная к данной схеме.
Помогите мне написать программу на Си, под предложенную схему чтоб она обеспечивала:
1. установку времени минут и секунд
2. запоминание в EEPROM последнего интервала установки и считывание его после включения питания
3. Максимальное время осчета меня особо не волнует, но можно например задать 99 мин 59 сек
4. После старта таймер включает нагрузку
5. по окончании осчета нагрузка отключается и подается короткий прерывистый сигнал.

с чего нужно начать писать программу? Как инициализировать таймер? Как правильно сделать меню? И как правильно организовать сканирование кнопок?

Надеюсь моя тема окажется полезной таким же новичкам, как и я.
Данная схема у меня собрана и опробована с авторской прошивкой, которую я здесь специально не выкладываю, т.к. не спрашивал об этом разрешения автора.

ЗЫ. Одна просьба, давать как можно более простые и понятные пояснения и желательно не писать программу на макросах. Ибо мой печальный опыт с термометром на дисплее от нокии показал, что я так и не разобраться с программой и самостоятельно дописать в нее ничего своего

 

Посмотри пожалуйста пример - таймер - пошаговая инструкция
А вот как правильно составить алгоритм на русско...

 

Для такой же задачи сделал себе таймер на PIC16F628, выдержка до 23:59:59, шаг 1 сек индикатор ЖКИ 8симв 2стр, правда, без звуковой сигнализации. Если надо могу выложить.

 

Тут на форуме есть топик "создание кухонного таймера с нуля" - я думаю он тоже подойдет.

 

AlexAlcoa: Для такой же задачи сделал себе таймер на PIC16F628
Тип контроллера не устраивает, т.к. схема у меня полностью собрана уже. верхний потолок выдержки можно и на сутки сделать, может кому такой понадобится. Но мне важно именно по этой схеме. Шаг тоже 1 сек. Звуковая сигнализация обязательна. Надо знать, что нагрузка отключена

 

Karados: Тут на форуме есть топик "создание кухонного таймера с нуля" - я думаю он тоже подойдет.
Та же проблема, микроконтроллер там PIC, а у меня ATtiny2313

 

Karados: Посмотри пожалуйста пример - таймер - пошаговая инструкция
Это я уже просмотрел давно, там во первых дискретная установка, во воторых погрешность приличная. И насколько я понял, там осчет идет по задержкам, а не по прерыванию от внутреннего таймера, И именно поэтому такая погрешность
Да и весь курс у меня под рукой всегда. Только я лично не разделяю мнение автора об удобном написании статьи. В глазах просто мельтешит все от таких выделений. Да и написано таким языком, будто автор читает лозунги на параде

 

serv_svd, начните что-нибудь писать, поможем. Пока в общем-то, сказать нечего

 

chav1961: serv_svd, начните что-нибудь писать, поможем. Пока в общем-то, сказать нечего
Пока застрял на этом
/**************************************************

*********** Таймер на для УФ установки ************

Chip type : ATtiny2313
Clock frequency :7,372800 MHz

**************************************************/

#include <avr/io.h> // Библиотека ввода-вывода
#include <avr/eeprom.h> // Библиотека работы с EEPROM
#include <stdlib.h> // Библиотека стандартных утилит
#include <tiny2313.h> // подключам библиотеку с описанием регистров МК
#include <delay.h> // подключаем библиотеку выполнения пауз
#include <lcd.h>

//**************************************************

// Подключение кнопок
#define start PIND.2 // Кнопка СТАРТ
#define stop PIND.3 // Кнопка СТОП
#define set PIND.4 // Кнопка УСТАНОВКА
#define minus PIND.5 // Кнопка "-"
#define plus PIND.6 // Кнопка "+"

#define power PIND.1 // Порт управления нагрузкой
#define beep PIND.0 // Порт управления пищалкой

// далее нужна инициализация таймера

Тут хоть все правильно, или надо как-то иначе кнопки определить?

 

Есть платы для таймера

150258.zip