Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » RBG подсветка комбинации приборов .Help !!!


RBG подсветка комбинации приборов .Help !!!

Сообщений 1 страница 10 из 10

1

Собрал трех цветную подсветку для своего авто(Волга) , управление светодиодами потсветки сделал на счетчике , но столкнулся с проблемой - при запуске двигателя счетчик  сбрасывается :(
Нужен треxразрядный двоично - десятичный счетчик с сохранением состояний выводов в еепром и востановлением их(состояний) при старте  контроллера. Желательно ШИМ на выводах для регулировки яркости .Управление двумя кнопками (счет и яркость.)
Сам когда то (лет 15 назад) что то писал на бейсике для спектрума , но попробовав сейчас , понял что почти все забыл .
Мож кто напишет прогу для мк (атини 12...15) или подскажите где нарыть исходники , что б из кусков собрать ?

Отредактировано EduardNN (2008-03-26 23:05:14)

0

2

Очень рад шквалу советов .......
....видать задача для спецов или слишком простая или не разрешимая судя по кол-ву ответов\советов :(
Накалякал счетчик :

$regfile = "attiny12.dat"
  $crystal = 1000000
  Config Portb.0 = Output
  Config Portb.1 = Output
  Config Portb.2 = Output
  Config Portb.3 = Input
  Config Portb.4 = Input
  Portb = 1
  Do
  If Pinb.3 = 0 Then Portb = Portb + 1
  If Portb > 7 Then Portb = 1
  Loop

Подозреваю о страшном "дребезге" кнопки
Дело осталось за немногим - разобраться с записью\чтением еепрома .
Советов \помощи видимо тут не дождешься :(
Еще раз всем спасибо .

0

3

Для опроса состояния пина есть оператор DEBOUNCE, в нём встроенная  настраиваемая задержка, в качестве защиты от дребезга, 25mS по умолчанию. Работа с EEPROM есть в примерах. С ШИМом есть такой примерчик http://www.mcselec.com/index2.php?optio … mp;t=3446. Вообше советую полазить по перечисленным тут форумам, много вкусного попадается.

EduardNN написал(а):

Мож кто напишет прогу для мк

Это вряд ли. Если будешь свои варианты выкладывать, то подскажут и поправят.

EduardNN написал(а):

Советов \помощи видимо тут не дождешься

Надеюсь заметил что форум не отличается активностью, так что имей терпение.

Отредактировано krot (2008-03-26 01:20:20)

0

4

Вот вроде с еепром разобрался , но чую что так коряво .....
После каждого нажатия кнопки - запись в еепром , а хотелось бы паузу секунд 10...20 и если на Portb3 1 то пишем , если 0 то считаем дальше...
Но тинька 12 , коих у меня гора не работает с переменными , т.к. нет ОЗУ :(
Как подтянуть portb3 и portb4 к единице встроенными резисторами ?

$regfile = "attiny12.dat"
  $crystal = 1000000
  Config Portb.0 = Output
  Config Portb.1 = Output
  Config Portb.2 = Output
  Config Portb.3 = Input
  Config Portb.4 = Input
  Readeeprom Portb , 0
  Do
  If Pinb.3 = 0 Then Portb = Portb + 1
  If Portb > 7 Then Portb = 1
  If Pinb.3 = 0 Then Writeeeprom Portb , 0
  nop
  nop
  nop
  nop
  nop
  Loop

0

5

Для контроллеров без ОЗУ Bascom малопригоден, если не сказать что совсем не годится, для них asm существует. Вариата только два, либо переходить на ассемблер, либо взять другой контроллер. :(

0

6

Cовет, возьми таню 2313, и твори вещи.
Do
  If Pinb.3 = 0 Then Portb = Portb + 1
  If Portb > 7 Then Portb = 1
  If Pinb.3 = 0 Then Writeeeprom Portb , 0
  nop
  nop
  nop
  nop
  nop
  Loop
вот такая программа не заработает
надо делать переменную, а потом записывать её в порт.А чтобы сделать переменную нужна память.
А потом , я прочитал пост несколько раз, но так и не понял, для чего нужен сей счетчик.
Опишите пожалуйста задачу поточнее.
И еще , шим и данная прога вообще не укладываются в голове

0

7

Ведущийспециалист написал(а):

Cовет, возьми таню 2313, и твори вещи.

Я стороник минитюаризации всего , тинька12 всего 8 ног и корпус so8 да и покупать не надо ....

Ведущийспециалист написал(а):

вот такая программа не заработает
надо делать переменную, а потом записывать её в порт.А чтобы сделать переменную нужна память.
А потом , я прочитал пост несколько раз, но так и не понял, для чего нужен сей счетчик.
Опишите пожалуйста задачу поточнее.
И еще , шим и данная прога вообще не укладываются в голове

Заработает или нет я не знаю - смотрел в симуляторе avrstudio , там вроде работает .
Счетчик нужен для управления светодиодами установленными в комбинации приборов (красный , синий , зеленый) , что б была возможность смены\смешивания цветов , ШИМ нужен для регулировки яркости - хотя не принципиально , это можно решить отдельным устройсвом.

Отредактировано EduardNN (2008-03-26 23:02:54)

0

8

Скорее всего при написании под контроллер без ОЗУ тебе ни как не обойтись без вставок асма. Вот разжёванный пример ШИМа на ассемблере, без использования таймера http://www.sin-bad.ru/main.php?f=2& … dee1a74e74

0

9

Ведущийспециалист написал(а):

Do
  If Pinb.3 = 0 Then Portb = Portb + 1
  If Portb > 7 Then Portb = 1
  If Pinb.3 = 0 Then Writeeeprom Portb , 0
  nop
  nop
  nop
  nop
  nop
  Loop
вот такая программа не заработает
надо делать переменную, а потом записывать её в порт.А чтобы сделать переменную нужна память.
А потом , я прочитал пост несколько раз, но так и не понял, для чего нужен сей счетчик.
Опишите пожалуйста задачу поточнее.
И еще , шим и данная прога вообще не укладываются в голове

Все кроме записи в еепром работает

0

10

По поводу переменной в eeprom!!! Намногопроще сделать так:
Dim x As Eram Byte
и использовать переменную x - она уже в eeprome!!! Мне больше интересно реализация ШИМА, сам пока ковыряюсь)))

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » RBG подсветка комбинации приборов .Help !!!