Страница 6 из 13
Добавлено: Вт июн 16, 2009 12:49:08
1995kenny
Код: Выделить всё
// External Interrupt(s) initialization
// INT0: Off // INT1: On
// INT1 Mode: Low level
//GICR|=0x80;
//MCUCR=0x00;
GIFR=0x80;
GICR=0b10000000;
MCUCR=0b00001100;
Написал, чтоб по этому прерыванию загорался светодиод-он не загорается в протеусе

. к ИНТ1 входу подключено 5гц.
Добавлено: Вт июн 16, 2009 15:08:49
SeamaNCOS
Попробуй без
//GICR|=0x80;
//MCUCR=0x00;
GIFR=0x80;
Добавлено: Вт июн 16, 2009 21:38:01
1995kenny
Все равно то-же самое

Добавлено: Ср июн 17, 2009 14:39:03
SeamaNCOS
Ну в С я пока не помошник.
На асме это пишется так:
ldi Temp1,0b10000000
out gicr,Temp1 ;разрешить прерывание компаратора
ldi Temp1,0b00001100
out MCUCR,Temp1 ;
ldi Temp1,0b10000000
out SREG,Temp1
Добавлено: Ср июн 17, 2009 19:29:14
1995kenny
Теперь INT1 срабатывает, а таймеры все еще нет.
Код: Выделить всё
// Timer/Counter 1 initialization
TCCR1A=0x10;
TCCR1B=0x02;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x40;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2=0x02;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT1: On
GICR=0b10000000;
MCUCR=0b00001100;
SREG=0b10000000;
Кстати, что происходит с функцией main при переходе к обработчику прерывания и выходу из него? Она перезапускается или продолжаетс или не идет уже?
Добавлено: Пт июн 19, 2009 02:58:57
SeamaNCOS
Нужно разрешить прерывания по таимеру 2
// Timer/Counter 1 initialization
TCCR1B=0x02; ;делитель
TCNT1H=0x00; ;обнуление счетчика
TCNT1L=0x00; ;обнуление счетчика
// Timer/Counter 2 initialization
Timsk=0b10000000 ;разрешить прерывание компаратора Timer/Counter 2
TCCR2=0x02; ;делитель
TCNT2=0x00; ;обнуление счетчика
OCR2=0xFF; ;выставляем максиммальное число сравнения
Добавлено: Пт июн 19, 2009 11:07:14
1995kenny
Думаю теперь работает... вот посмотрите мой ужасный проект в протеусе...

Добавлено: Пт июн 19, 2009 11:54:40
SeamaNCOS
А прошивка где ?
Добавлено: Пт июн 19, 2009 13:50:29
1995kenny
Должны быть в архиве файлы: Autopov.c ; Autopov.hex.
Вообщем починю(один...Иван отламал 2 светодиода), подключу геркон(разъем для него уже есть)и проверю в реале.
Добавлено: Пн июн 22, 2009 02:02:55
Инженер
SeamaNCOS писал(а):Две линейки на колесо, на каждой по Тиньке...
Почему никто нигде не хочет ставить 2 (или три) линейки с ОДНИМ контроллером. 2 датчика холла (при их точном расположении) обеспечат 2х точность во время ускорения или торможения колеса.
Глянул на долгие мучения с программой. А все потому что блок схему не нарисовали, с ней раза в 2 раза быстрее отладка. Я за 2 вечера написал. 8 светодиодов с одной стороны (печатка от другого проекта осталась) Ну это все баловство. Надо хотябы 16-24 штуки. Анимацию и быстую смену картинок.
Свои схемы, прошивки кто-нибудь собирается выкладывать или мне проще самому дописать? Кто-нибудь реализовал анимацию? Быструю смену заранее прошитых картинок/анимаций кнопочкой?
Добавлено: Пн июн 22, 2009 13:31:36
ps1x
Я написал.
- Мега 8
- 20 светодиодов (4 просто нет на плате, хотя прошивкой поддерживаются)
- до 8 кадров, время между сменой кадров ес-но настраиваеца (анимация из 8 кадров)
- автоподстройка под скорость вращения колеса (ИЗОБРАЖЕНИЕ СТОИТ КАК ВКОПАНОЕ)
- используется датчик Холла
- размер кадра 20х256 (прошивкой поддерживается 24х256) по умолчанию
- используется 3 сдвиговых регистра с защелкой 74HC595
- автоматическое отключение светодиодов при скорости, меньшей скорости нормального отображения (~12 км/ч)
- ЕСТЬ АЛГОРИТМ ПЕРЕГОНА КАРТИНОК ИЗ ФОТОШОПА
В планах:
- картинка 32х256 (т.е. вообще на все колесо горного велосипеда)
- может быть внешняя память для картинок (тогда можно фильмы крутить

)
Все об устройстве ждите в течении 2х недель на моем сайте
http://begeek.ru
А пока отвечу на вопросы публики

Добавлено: Пн июн 22, 2009 14:21:15
ps1x
На 32 светодиодах:

На 20 светодиодах:
На 20 светиках в тыщу раз хуже.
Вот так это выглядит, если приглядется к картинке, видно что изображение "развернуто" вокруг центра.
Добавлено: Пн июн 22, 2009 16:48:35
константин_KoSS_89
Класс Класс Класс, Хочу Хочу Хочу,. Канструкция суппер, С нетерпением жду схем, прошивок и другой инфы.
Добавлено: Пн июн 22, 2009 19:21:54
SeamaNCOS
Я тоже сделал чтоб индикация срабатывала при 6км/ч. До 6 огонек бегает туда сюда

в протеусе работает нормально, а в железе при индикации бывает пробегает этот огонек то на одной полоске то на другой. Еще делал чтоб мотоциклист по кругу ездил правда чем больше скорость тем быстрее едет.
Ps1x в чем писал в C или в асме?
Добавлено: Пн июн 22, 2009 20:13:17
Инженер
В принципе все хорошо, но
ps1x писал(а):
- автоподстройка под скорость вращения колеса (ИЗОБРАЖЕНИЕ СТОИТ КАК ВКОПАНОЕ)
Непрвавда! Я сам лично проверял с 1 датчиком нифига оно на месте не стоит, при ускорении и торможении значительно смещается, а если картинка полноразмерная (на все колесо - киска) а не сектор (как у меня) то сразу получим проблемы сведения и твои улучшения (32 светодиода) коту под хвост. Т. е. в области датчика получим либо расхождение (ускорение) лобо наложение (торможение) картинки
ps1x писал(а):
- используется 3 сдвиговых регистра с защелкой 74HC595
У Mega8 куча ножек - нерационально использовать 3 регистра сдвига достаточно 1 (16 светиков обслужит контроллер) и еще 8 регистр. Программа несколько сложнее зато схема проще.
ps1x писал(а):
- ЕСТЬ АЛГОРИТМ ПЕРЕГОНА КАРТИНОК ИЗ ФОТОШОПА
Круто, поделишься?
Я считаю что на велик нужно:
3 линейки (расположение спиц таково что 2 линейки симметрично расположить не получается)
3 датчика холла
1 контроллер
количество светодиодов в линейке зависит от величины бюджета проекта. Перекрывать все колесо считаю необязательным.
Питание от 3х пальчиковых аккумуляторов.
И еще если мы вдруг захотим вывести например текст? То мы столкнемся с проблемой текст можно вывести либо направо либо налево, с обратной стороны он будет написан задом-наперед. И если мы захотим вывести текст одновременно на обе стороны то мы должны будем придумать способ раздельного управления диодами правой и левой стороны.
3 линейки дадут лучшую прорисовку при меньших скоростях, большую яркость (либо можно уменьшить втрое яркость каждой линейки если есть желание сократить потребление)
Либо если линейки разных цветов то соответственно цветную картинку
Вот сижу и думаю, вроде и цветную картинку охота и прорисовку получше, ну прям хоть три линейки RGB диодов ставь - но это же будет безумно дорого

Добавлено: Пн июн 22, 2009 21:38:55
1995kenny
А у мя мое не заработало...

Добавлено: Вт июн 23, 2009 08:17:16
ps1x
SeamaNCOS писал(а):
Ps1x в чем писал в C или в асме?
Банальный CVAVR 1.5.9 или около того.
Инженер писал(а):В принципе все хорошо, но
Непрвавда! Я сам лично проверял с 1 датчиком нифига оно на месте не стоит, при ускорении и торможении значительно смещается, а если картинка полноразмерная (на все колесо - киска) а не сектор (как у меня) то сразу получим проблемы сведения и твои улучшения (32 светодиода) коту под хвост. Т. е. в области датчика получим либо расхождение (ускорение) лобо наложение (торможение) картинки
Видео будет сегодня вечером. Программа написана таким образом что этого эффекта почти незаметно.
Инженер писал(а):
У Mega8 куча ножек - нерационально использовать 3 регистра сдвига достаточно 1 (16 светиков обслужит контроллер) и еще 8 регистр. Программа несколько сложнее зато схема проще.
Стоимость одной hc595, сравнимая со стоимостью хорошего светодиода позволяет закупить их в таком количестве которое необходимо. Это просто удобно.
Инженер писал(а):
Круто, поделишься?
Обязательно, как все доделаю.
Инженер писал(а):
Я считаю что на велик нужно:
3 линейки (расположение спиц таково что 2 линейки симметрично расположить не получается)
3 датчика холла
.....
На вкус и цвет....
Инженер писал(а):
И еще если мы вдруг захотим вывести например текст? То мы столкнемся с проблемой текст можно вывести либо направо либо налево, с обратной стороны он будет написан задом-наперед. ....
Я для себя решил, текстом пока не заморачиваться, но вообще, что-то подсказывает мне использовать 4 дополнительных HC595 тем более что стоить это будет не больше 40 рублей.
А с программной точки зрения всего то:
Код: Выделить всё
//на одну сторону выводить
for (i = 0; i <buffsize> 0; i--) {
}
единственное, что - 4(байта)х256 для меги8 не хватит оперативки. впрочем можно использовать, скажем 3(байта)x256 = 768 байт
UPD: что то не то с тегом [код] как будто он оптимизирует Оо. В общем смысл вывода на разные стороны колеса в том что на одной стороне выводим буфер от 0 до buffersize а на другой от buffersize до 0.
Добавлено: Вт июн 23, 2009 13:49:17
Инженер
ps1x писал(а):
Видео будет сегодня вечером. Программа написана таким образом что этого эффекта почти незаметно.
Стоимость одной hc595, сравнимая со стоимостью хорошего светодиода позволяет закупить их в таком количестве которое необходимо. Это просто удобно.
1. Как ты программу не пиши а при ускорении ты ну никак не сможешь свести свою картинку с одним датчиком, особенно если скорость не очень большая.
2. Дело не в стоимости а в габаритах из-за лишних деталей.
Добавлено: Вт июн 23, 2009 16:27:15
ps1x
Инженер писал(а):
1. Как ты программу не пиши а при ускорении ты ну никак не сможешь свести свою картинку с одним датчиком, особенно если скорость не очень большая.
2. Дело не в стоимости а в габаритах из-за лишних деталей.
1. Для наших нужд вполне хорошо работает, продемонстрирую сегодня, часиков в 8.
2. Даже не знаю что лучше мега вся опутаная проводниками с путаницей и прочим или +2 корпуса. Габаритные размеры платы скажу сегодня же. Хотелось бы видить разводку печатной платы при использовании всех ножек и 1 HC595.
Добавлено: Вт июн 23, 2009 16:32:08
константин_KoSS_89
С нетерпением жду схему, и конечно прошивку....
Слижу за темой, но к сожелению путнего подскозать немогу, просто в програмировании нешарю.