Главная  
19.05.2024 г.
Главная
Проекты
Статьи
Начинающим
Архив новостей
Ссылки
Контакты
Поиск
Файлы
Форум
Карта сайта
Авторизация





Забыли пароль?
Ещё не зарегистрированы? Регистрация
Поддержи наш сайт!
Через WebMoney

 R785211844650
 Z210696637574
 E368177590409

Форум ARV Research
Добро пожаловать, Гость
Пожалуйста Вход или Регистрация.
Забыли пароль?
СУПЕР-ПУПЕР МЕГАТАЙМЕР (1 просматривает)
_GEN_GOTOBOTTOM Ответить

TOPIC: СУПЕР-ПУПЕР МЕГАТАЙМЕР

#7564
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 18.05.2012 05:58 Репутация: 11  
Проверьте кто собирал в железе, подправил прошивку.Теперь если год <2012,пропишется 05.05.2012 автоматом, чем должно запустить DS1307.
PS. Не ругайте если чего, я только учусь.
File Attachment:
File name: mega_timer.zip
File size:9408 bytes

Реализовано топорно, в протеусе работает

Содержимое поста отредактировано: 386processor, в: 18.05.2012 06:09
  Топик заблокирован.
#7571
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 23.05.2012 20:25 Репутация: 11  
Сам собрал-пока не работает в железе,лишь добился включения и однократного вывода на дисплей времени и температуры и не меняется,сами часы идут при повторном вкл. отображается правильное время.На 5 выходе секундные импульсы есть, но походу не срабатывает внешнее прерывание
Code:

 ISR(INT1_vect){     // тупо устанавливается флаг обновления дисплея     refresh_display 1;     // и ведется подсчет задержки для обработки навигации по меню     if(waitwait--; }


и переменная refresh_display остаётся с нулевым значением, выставленным здесь
Code:

 // если установлен флажок обновления дисплея,             // то получаем текущее время             rtc_get_date(&state.dt.weekday, &state.dt.day, &state.dt.mon, &state.dt.year);             rtc_get_time(&state.dt.hour, &state.dt.min, &state.dt.sec);             refresh_display 0;


Добавил принудительную установку бита 7 (CH) регистра секунд DS1307 в 0,который останавливает или запускает генератор
0 - запущен, 1 - остановлен.
Code:

 rtc_get_time(&state.dt.hour, &state.dt.min, &state.dt.sec);         state.dt.sec &= 0b01111111;                    // принудительная установка 7-го бита в "0"         rtc_set_time(state.dt.hourstate.dt.minstate.dt.sec);



Содержимое поста отредактировано: 386processor, в: 23.05.2012 20:39
  Топик заблокирован.
#7575
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 26.05.2012 02:50 Репутация: 11  
File Attachment:
File name: NO_Menu.zip
File size:4672 bytes

Кажись нашел куда рыть! Выводя на экран маркеры с именами места вставки, получил (после 2-3сек работы по полному циклу), на экране мусор, после обработки функции
Code:

 // отрабатываем работу меню         do_user_interface();


Поменяв на
Code:

 // НЕ отрабатываем работу меню //        do_user_interface();


Получил часы без кнопок и с температурой 150С. Ищем далее.

Содержимое поста отредактировано: 386processor, в: 26.05.2012 03:07
  Топик заблокирован.
#7579
dexron (Пользователь)
Новичок
Постов: 24
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 26.05.2012 15:49 Репутация: 0  
386processor (а):


386processor +5
  Топик заблокирован.
#7580
riv66 (Пользователь)
Посетитель
Постов: 82
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 26.05.2012 17:15 Репутация: 2  
386processor писал(а):

Кажись нашел куда рыть! Получил часы без кнопок и с температурой 150С. Ищем далее.

Что то чем дальше, тем больше хочется сказать, что проект создан далеко не для повторения. Все как у нас, после сборки доработать напильником... Хотя замысел очень хороший и полезный.
  Топик заблокирован.
#7581
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 26.05.2012 19:42 Репутация: 11  
Проект очень перспективный, но для новичка в программировании, вроде меня -тяжеловат. В исходниках много всего, и можно брать за основу для других устройств. Автору респект. Теперь хотелось получить ответ от гуру ARV, в других устройствах (в железе)Вы подключали кнопки параллельно к экрану как здесь, а то похоже при опросе кнопок экранчик и отваливается унося и мегу за собой .
Code:

 static uint8_t get_key_code(void){     uint8_t ddr DDRDcode=0;     DDRD ANY_BUTTON;     for(uint8_t mask K_MINUSmaskmask <<= 1){         PORTD = (PORTD & ~ANY_BUTTON) | mask;         _delay_us(10);         code |= PINC _BV(PC3) ? mask 0;     }     DDRD ddr;     return code; }

  Топик заблокирован.
#7583
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 27.05.2012 00:34 Репутация: 11  
И таки да!!!. Если для отладки заменить в предыдущем коде DDRD на DDRВ, а PORTD на PORTВ, и тем самым перенеся кнопки на порт В,получил тикающие часики, а замкнув выводы 19 и 26 попал в меню(правда и быстро с него вернулся почемуто????). Получается не дружат кнопки с экраном на одном порте. Ищем далее.
  Топик заблокирован.
#7596
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 02.06.2012 22:52 Репутация: 11  
Думаю проблема с определением температуры связана с функцией _delay_ms. Так при _delay_ms(100) прога стопорится на 2 с вместо 0,1.Пробовал ставить
Code:

 #define F_CPU 8000000UL  // 8 MHz

в текст проги- результат нулевой.
В инете связывают подобную ситуацию, с оптимизацией кода компилятором.
PS. кноопки попробую прикрутить как в проекте http://radiokot.ru/forum/viewtopic.php?f=20&t=21235&sid=d87a4011aaf711ab3fe9b4c2012708ff ,но это после получения правильных показаний температуры.

Частоту тактирования через Fuse думаю выставил верно,перепроверял с помощью Fuse Calculator http://www.engbedded.com/fusecalc и http://fusecalc.mirmk.net/

Содержимое поста отредактировано: 386processor, в: 03.06.2012 15:00
  Топик заблокирован.
#7598
ARV (Администратор)
Администратор
Постов: 2386
graph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 03.06.2012 00:28 Репутация: 176  
проблема с кнопками, наверное, может иметь место... я не сильно задумывался, когда писал такой код, тем более что протеус вроде как показал положительный результат... думаю, надо обратить внимание на состояние других линий управления дисплеем: опрос кнопок можно делать только при условии, что дисплей не активен, т.е. надо перед опросом сохранить имеющиеся там уровни, затем выставить такие уровни на них, чтобы дисплей и сам молчал, и не воспринимал сигналы от МК, после чего опросить кнопки и восстановить сигналы управления... как минимум, это касается сигнала E

думаю, это решит проблему.

Содержимое поста отредактировано: ARV, в: 03.06.2012 00:30
Не стыдно не знать, стыдно не учиться
  Топик заблокирован.
#7610
386processor (Пользователь)
Новичок
Постов: 20
graphgraph
В ответ на: СУПЕР-ПУПЕР МЕГАТАЙМЕР 06.06.2012 16:37 Репутация: 11  
Отключил обработку по внешнему прерыванию, гоняю по кругу и температура пошла!!!. Замучился с задержками добавил функцию delay_ms с обработкой по INT0, для её проверки, при старте и выводятся метки с значениями задержек в миллисекундах.
Ну и подправил библиотеку ds1307.c , стартуем с 05.05.12 и если секунд больше 60 то поставить 59. Так стартует и без батарейки, с мусором в ds1307.

Ну, а дальше кнопки.
File Attachment:
File name: Release-012fadda5060cff1d12cfcad04e263d4.zip
File size:7932 bytes


Содержимое поста отредактировано: 386processor, в: 06.06.2012 16:39
  Топик заблокирован.
_GEN_GOTOTOP Ответить
© Copyright 2007 Best of Joomla, Работает на FireBoardполучить последние сообщения прямо на Ваш рабочий стол