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