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

Цифровые светодиодные часы с 2мя датчиками температуры (внешним и внутренним)

1 2 3

Vlad_Petr: Полагаю, максимум полгода самостоятельных занятий по паре часов один-два раза в неделю с простым и дешевым микроконтроллером и будет желаемое.
Именно так. А за основу я бы порекомендовал взять проект ардуино: http://www.arduino.cc/ Часы, термометры, барометры и прочие штучки на нём реализованы, есть готовые библиотеки и скетчи. Есть и программы вывода на светодиодные матрицы. А дальше голова и руки.
Вдогонку: вот почти готовое решение http://timewitharduino.blogspot.com/2009/08/assembling-wiseduino-draft.html

 

shoolia: А за основу я бы порекомендовал взять Тут главное, во всех фрагментах чужих программ разбираться до каждой команды. Это надо принять как стратегию. Попытки "быстрого" составления программы из чужих кусков, не разобравшись подробно, что и как там происходит, - приведут в тупик. На начальном этапе ТОЛЬКО САМ! Тогда и придет необходимый навык и квалификация. Лучше ассемблер, если есть навыки работы с цифровой логикой.

 

Вот тоже проект http://www.remexpert.com/ipb/index.php?automodule=blog&blogid=8&showentr...
можно взять за основу.

 

Vlad_Petr: Тут главное, во всех фрагментах чужих программ разбираться до каждой команды. Это надо принять как стратегию.
Категорически не согласен. Эдак можно договориться и до отрицания библиотек.
Vlad_Petr: Лучше ассемблер,
Далеко не всегда. Зависит от постановки задачи. Если надо решить прикладную в стиле мигания светодиодом - то зачастую проще и лучше использовать специальные инструменты типа FlowCode http://elektron.ucoz.ru/publ/8-1-0-70 или RLL http://cq.cx/ladder.pl А уж наигравшись, можно и попытаться понять, как это работает и как оптимизировать эти программы к своим нуждам. Изучать языки программирования в отрыве от прикладных задач - дело скучное и практических результатов, как правило, не приносящее. Собственно поэтому среди начинающих так популярен проект ардуино, о котором я упоминал выше.

 

Вот бегущая строка - для часов электронику можно 1:1 использовать, поменяв только ПО
http://bascom.at.ua/publ/1-1-0-7

 

skorkin: Но интересует именно такой вывод информации на индикатор.
Прошу откликнуться всех кто может пролить свет на данную тему.

Долго думал, решил всё-таки откликнуться. Схема вывода на матричный индикатор очень простая: семь мощных ключей на семь строк, каждый столбец подключен к отдельному выводу сдвигового регистра на 48 разрядов. Ниже приведена простая программа под это дело, она работает по прерываниям от таймера, скажем, каждые 5-6 мс, чтобы было порядка 25 кадров в секунду.


;Выдача данных на матричный светодиодный индикатор
ISR(TIMER0_OVF_vect)
{
unsigned char i,j,gbyte;
PORTD=0; //Выключим все строки
eoframe=0; //Признак незавершённого кадра
for(i=0;i<8;i++) //Цикл по байтам строки
{
gbyte=*pgbuf++; //Возьмём текущий байт
for(i=0;i<6;i++) //Цикл по выдаче 6 бит байта
{
(gbyte&0x01)? (PORTB |=_BV(GDAT)) : (PORTB & =~_BV(GDAT));
PORTB |=_BV(GCLK); //Выдадим импульс записи
PORTB & =~_BV(GCLK); //в сдвиговый регистр
gbyte > > =1; //Подготовим следующий бит
} //Конец цикла по битам
} //Конец цикла по байтам строки
PORTD=gkey; //Включим текущую строку
gkey =1; //Подготовимся к следующей строке
if(gkey==0x80) //Если обработали все строки,
{ //то начинаем новый кадр
gkey=0x01; //Ключ для первой строки
pgbuf=gbuf; //Начало буфера
eoframe=1; //Признак завершенного кадра
}
}

Алгоритм работы следующий. Фоновая программа записывает в графический буфер gbuf необходимую графическую информацию. Первые 8 байт буфера предназначены для первой строки, вторые 8 - для второй и т.д. Каждые 6 мс возникает прерывание от таймера0, оно выдаёт в сдвиговый регистр текущие 8 байт. Вгрубе потребуется 5% времени. Остальное время МК может расходоваться на обслуживание других задач и устройств. Вот собственно и всё. Программа занимает 130 байт, так что её можно и в тиньку какую подходящую засунуть. Компилятор winavr, полная оптимизация.

 

Благодарю всех, кто откликнулся.

FOLKSDOICH - жестко, но справедливо.
Vlad_Petr - Полностью с Вами согласен. ДОРОГУ ОСИЛИТ ИДУЩИЙ - один из девизов моей жизни. Но хочется ведь всего и сразу. Нужно с чего-то начинать.
shoolia - Посмотрел предложенный Вами ресурс Arduino. Пришел в ужас (смотрел тексты программ) как в этом всем можно разобраться. Хотя понравился стиль подачи информации. Скачал предложенную Вами FlowCode - буду пробовать.
smg123 - К сожалению, Ваша ссылка ведет к общему списку блогов. Ничего не нашел.
Wladimir_TS - Спасибо, кстати, очень даже можно использовать исполнительную часть (все, что после микроконтроллера). Только как этим хозяйством управлять...?
GM - Тронут Вашим подробным разъяснением и попыткой объяснить суть процесса. К сожалению, моя база - ноль (бейсик в школе не считается). Спинным мозгом чувствую, что все это не настолько сложно насколько я себе придумал и боюсь

Буду браться за ум. Времени б побольше и грамотного наставника. Всем еще раз спасибо.

 

skorkin: Пришел в ужас (смотрел тексты программ) как в этом всем можно разобраться.
Язык - wiring на базе С.
skorkin: Только как этим хозяйством управлять...?
skorkin: бейсик в школе не считается
Как раз по ссылке Wladimir_TS'а управление на бейсикоподобном Bascom.

 

skorkin: Ничего не нашел
Действительно, какие-то траблы.
Тогда так: блог - AVR в автоматике и интересных решениях.
страница 6 - проект Часы ,бегущая строка.
skorkin: чувствую, что все это не настолько сложно
На самом деле все просто - надо доходчиво объяснить железке, что она должна делать.

 

shoolia: Vlad_Petr: Лучше ассемблер, Далеко не всегда. Зависит от постановки задачи. Не от задачи это зависит, а прежде всего от предыдущих базовых знаний. Не зря я упомянул про ОПЫТ РАБОТЫ С ЦИФРОВЫМИ МИКРОСХЕМАМИ, т.е. способностью самостоятельно построить схему содержащую счетчики, регистры, логику...и т.п.
Вот в этом случае процесс обучения программированию микропроконтроллера лучше всего идет на ассемблере. В голове легко и быстро связываются понятия програмной структуры микроконтроллера с его командами. А далее по жизни получается хороший "бонус" от знания ассемблера... Полагаю очевидным и не нуждающимся в обсуждениях большую эффективность программ реализованных на ассм. Без опыта,- сложные программы дольше.. но не со сложных начинают. А далее своих библиотек появится.