Например TDA7294

Форум РадиоКот • Просмотр темы - Часы на STM32
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс дек 28, 2025 23:51:16

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Часы на STM32
СообщениеДобавлено: Пн окт 06, 2014 11:10:08 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
Доброго времени суток уважаемые коты! Совсем недавно познакомился с контроллерами STM32. В частности взял для себя отладочную плату stm32vldiscovery... Все супер! Уже успел поморгать светодиодами, подключил дисплей от Nokia 1100 и решил сделать часы.. Вот на этом все встало.Чувствую себя котенком. Часы запустились внутри самого контроллера и даже отображаются на дисплее, но не обновляются..Запустил в отладчике секунды идут, а на дисплее нет. Уже пару дней бьюсь над этим забросив все.. Друзья, кто нибудь может подсказать начинающему котенку в чем ошибка? И еще пытался организовать меню..Та же проблема. В отладчике работает, а на экране ничего не меняется. Прилагаю архив с проектом. Работаю в среде IAR..Вот ссылка на скачивание проекта(увы во вложение нельзя прикрепить файлы больше 1МБайт) https://yadi.sk/d/qEwF6FB7bqV7p

Заранее спасибо!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Пн окт 06, 2014 13:02:55 
Прорезались зубы
Аватар пользователя

Зарегистрирован: Пн сен 26, 2011 13:48:25
Сообщений: 202
Откуда: Харьков
Рейтинг сообщения: 0
В отладчике работает - это при пошаговой отладке? Если да, тогда вероятно дело в необходимости задержек между командами на дисплей. Простые дисплеи довольно неторопливые, и за мощными контроллерами они не успевают часто)

_________________
Осилит дорогу идущий
----------
Пишу на Си за еду


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Пн окт 06, 2014 14:15:18 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
задержка была организованна.. толку ноль.. отладка была в STMStudio..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Пн окт 06, 2014 16:09:21 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
А что обозначает фраза - часы идут в отладчике?
Я посмотрел проект. Что то не нашел там исходников работы с дисплеем. Только моргание светодиодами.


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Вт окт 07, 2014 09:03:47 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
Galizin писал(а):
А что обозначает фраза - часы идут в отладчике?
Я посмотрел проект. Что то не нашел там исходников работы с дисплеем. Только моргание светодиодами.



lcd-nokia1100.h файл в папке с библиотеками. это библиотека работы с дисплеем. И нет там моргания светодиодом.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Вт окт 07, 2014 11:14:09 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
Извините. У Вас в архиве около 450 файлов. Я не смог найти нужный исходник. Нашел только тот где написано
STM32vldiscovery_LEDOn(LED3);
А это и есть моргание светодиодом.

Ах да. Вот оно. Помещено в
Project/Examples/SysTick
Ну кто бы мог подумать! Ох тяжело читать - форматирование от случая к случаю.
Все правильно - он делает то что Вы описали - один раз выводит показания часов а потом зависает в бесконечном пустом цикле. Ну по моему так.
Нужно бесконечный цикл сделать не пустым. Ну или использовать прерывания.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Вт окт 07, 2014 14:47:51 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
Спасибо за ответ! не подскажите пожалуйста как это сделать? уже перепробовал разные варианты.не получается. туплю..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Вт окт 07, 2014 15:17:21 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
У вас сейчас вот так
Код:
main()
{
  init();
  display();
  while(1){};
}
А нужно
Код:
main()
{
  init()
  while(1)
  {
    display();
  }
}
init - последовательность действий по инициализайии
display - последовательность действий по отображению.
Естественно это может быть не одна функция а именно последовательность действий.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Вт окт 07, 2014 15:41:30 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
спасибо. сделал.не помогло. как сделать секундное прерывание?
и еще друзья могли бы пожалуйста поделится кодом для организации меню на STM32??? даны три кнопки меню, плюс и минус. Кнопка меню это вход и выход из меню а плюс и минус это перемещение по разделам меню. Не получается и все.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Ср окт 08, 2014 10:49:33 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
http://www.radiokot.ru/forum/viewtopic.php?t=51032 - там мои исходники и меню и часов. Правда в калибровке часов там где то баг.
Относительно прерывания - это Вам скорее всего поможет. Кнопки - http://radiokot.ru/circuit/digital/measure/113/
http://www.radiokot.ru/forum/viewtopic.php?f=25&t=95086 - вот еще проект с исходниками. Уже другого автора.
и еще http://radiokot.ru/circuit/digital/measure/119/ - исходники с кнопками тоже есть на git.
Ну и совсем свежее. Вроде там тоже кнопки и меню есть http://radiokot.ru/konkursCatDay2014/47/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Чт окт 09, 2014 15:30:43 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
Большое спасибо уважаемый Galizin!!! С часами разобрался.. нашел свой ошибки.. дописал код.. а теперь проблема с меню.. не хочет работать нормально.. Управление тремя кнопками (меню, плюс и минус). Кнопка меню позволяет входить в меню, в подпункты а также выходить назад выбрав пункт выход. А кнопками плюс минус можно перемещаться между подпунктами и изменять значение. Использовал в работе Switch Case... Подскажите пожалуйста как сделать меню с подпунктами под управлением трех кнопок?

Код:
 /*меню будет из 4 пунктов. от 0 до 3 */

while(1){

if (knopka_menu){menu_pointer++;  delay_ms(200);lcd1100_clear();} /* смещаем указатель, делаем против дребезга паузу и очищаем дисплей */
if (knopka_plus){str_menu++;  delay_ms(200);lcd1100_clear();}   
if (knopka_minus){str_menu--;  delay_ms(200);lcd1100_clear();}

if(str_menu==menu_pointer_max1){str_menu=0;} /* предел меню*/

if(menu_pointer==menu_pointer_max){menu_pointer=0;} /* предел меню*/

switch(menu_pointer){
 
case 0:


  lcd1100_gotoxy(5, 3);
  lcd1100_puts("Начальный экран");   
 

break;
case 1:
 
  if(menu=1)
{

  lcd1100_gotoxy(3, 1);
lcd1100_puts("УСТАНОВКА");   // вывели текст

}
if(menu=2)
  {

lcd1100_gotoxy(3, 3);
lcd1100_puts("СЕКУНДОМЕР");   // вывели текст

}

if(menu=3)
{

  lcd1100_gotoxy(3, 5);
lcd1100_puts("БУДИЛЬНИК");   // вывели текст

}
if(menu==4)
{

  lcd1100_gotoxy(3, 7);
lcd1100_puts("НАСТРОЙКИ");   // вывели текст

}
break;


case 2:
  /* Тут код который надо делать в 2 пункте меню */

lcd1100_gotoxy(4, 1);
lcd1100_puts("УСТАНОВКА");

 if(menu=1.1)
{

  lcd1100_gotoxy(3, 3);
lcd1100_puts("время ");   // вывели текст

}
if(menu=2.1)
  {

lcd1100_gotoxy(3, 5);
lcd1100_puts("дата");   // вывели текст

}



break;

case 3:
 
  /* Тут код который надо делать в 2 пункте меню */
lcd1100_gotoxy(3, 1);
lcd1100_puts("Секундомер");
lcd1100_gotoxy(1, 3);
lcd1100_puts_big(3,2,"00-00");

break;
case 4:
 
  /* Тут код который надо делать в 2 пункте меню */

lcd1100_gotoxy(4, 1);
lcd1100_puts("Будильник");
lcd1100_gotoxy(1, 3);
lcd1100_puts_big(3,2,"00-00");
lcd1100_gotoxy(1, 6);
lcd1100_puts("Пн,Вт,Ср,Чт,Пт,");
lcd1100_gotoxy(1, 7);
lcd1100_puts("Сб,Вс");


break;

case 5:
 
  /* Тут код который надо делать в 2 пункте меню */

lcd1100_gotoxy(3, 1);
lcd1100_puts("НАСТРОЙКА");
lcd1100_gotoxy(3, 3);
lcd1100_puts("ВРЕМЯ");
lcd1100_gotoxy(3, 5);
lcd1100_puts("ДАТА");
lcd1100_gotoxy(3, 7);
lcd1100_puts("КОНТРАСТ");


break;

case 6:
 
  {
         switch(str_menu)
         {
            case 0:
                                 

  lcd1100_gotoxy(5, 3);
lcd1100_puts("-ФОРМАТ");   // вывели текст



                               break;
      case 1:
                                     lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-ВРЕМЯ");
                                   break;
            case 2:                             
                                  lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-ДАТА");
                                  break;
            case 3:     
                                 lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-КОНТРАСТ");
                                  break;
                                                                                                   
                                                                                                                                                                                                                                                                                             
         }

         break;
  }
                       
 case 7:
 
  {
         switch(str_menu)
         {
            case 0:
                                 

  lcd1100_gotoxy(5, 3);
lcd1100_puts("-Настрйока0");   // вывели текст



                               break;
      case 1:
                                     lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-Настройка1");
                                   break;
            case 2:                             
                                  lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-Настройка2");
                                  break;
            case 3:     
                                 lcd1100_gotoxy(5, 3);
                                  lcd1100_puts("-Настройка3");
                                 
                                                                                                   
                                                                                                                                                                                                                                                                                             
         }

         break;      
      }
               

               
               
               
               
               
               
               
               

break;
 }






 



 


}    }






Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Чт окт 09, 2014 16:26:17 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
К стм это имеет мало отношения
Примерно так:
Отрисовывается на экране меню - набор строк. Каждой строке соответствует свой номер. Номер текущей строки где то хранится. При отрисовке инверсно отображается соотв номеру строка. Это функция отображения.
Теперь функция реагирования.
Должна определять что нажата та или иная клавиша. Если нажата клавиша вверх, то индекс сдвигается вверх и вызывается функция перерисовки. Если вниз - то то же самое. Если же нажата клавиша ввод, то анализируете текущий номер стоки. В зависимости от его значения делаете нужные действия. В частности нужным действием может быть вызов другой функции, которая будет отрисовывать следующее меню.
Для опроса кнопок можно сделать отдельную функцию, которая возвращала бы код клавиши, если она нажата.
Может быть есть и другие алгоритмы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Пт окт 10, 2014 08:59:48 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
В теории я все это понимаю..Скажите пожалуйста как это реализовать в программе? Скачал готовые проекты с исходниками. Если честно то запутался в них..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Пт окт 10, 2014 18:17:42 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
Что это конкретно? Какое из описанных действий представляет трудность?
Если все вместе, то разделите задачи и сделайте что то одно, потом другое, потом объедините ну и так далее


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Сб окт 11, 2014 08:36:30 
Первый раз сказал Мяу!

Зарегистрирован: Сб мар 12, 2011 22:28:40
Сообщений: 30
Рейтинг сообщения: 0
Для меня трудность представляют подменю и функция опроса клавиш.. Точнее я сделал функцию опроса клавиш, но у меня не корректно реагируют на нажатие.. Не могу заставить кнопку переходить в подменю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Часы на STM32
СообщениеДобавлено: Сб окт 11, 2014 20:12:06 
Мучитель микросхем

Карма: 16
Рейтинг сообщений: 35
Зарегистрирован: Ср окт 15, 2008 09:33:03
Сообщений: 476
Откуда: Воронеж
Рейтинг сообщения: 0
Я тоже еще ни разу не заставлял кнопку переходить в подменю.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y