система дистанционного управления на ATtiny 2313 "c нуля"
| |
ВитГо | Дата: Вторник, 27.11.2012, 16:00 | Сообщение # 361 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Quote (uwrtey) 2) четвертая студия отругала меня за записи вот такого вида Code sbi PORTD, PIN_INT2 и Code cbi PORTD, PIN_INT2
гм.. а ты задал PIN_INT2 ? я же тебе общий формат команды дал.. должно быть чтото типа sbi PORTD, 3 - установка бита 3 порта D
Quote (uwrtey) 1) нашел небольшие косяки, исправил их но аппаратное прерывание ни как не хочет генерироваться программно... странно, нужно будет мне попробовать.. но сейчас бог с ним, ты запустил генерацию oc0a ? и уже его соедини с пином прерывания, пин прерывания соответственно на вход конфигурируй !
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Вторник, 27.11.2012, 23:51 | Сообщение # 362 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Quote (ВитГо) гм.. а ты задал PIN_INT2 ? я же тебе общий формат команды дал.. должно быть чтото типа sbi PORTD, 3 - установка бита 3 порта D я так и думал, что здесь что то не так... все понятно
Quote (ВитГо) странно, нужно будет мне попробовать.. в датащите написано, что все должно работать... где я туплю, я не могу понять. Сегодня убрал из кода программную генерацию, что бы проверить будет ли код работать аппаратно ( этот вариант - я ведь не проверял ) в итоге оказалось, что в "ручном режиме" ( тыкая проводком) все работает ...
Quote (ВитГо) но сейчас бог с ним, ты запустил генерацию oc0a ? и уже его соедини с пином прерывания, пин прерывания соответственно на вход конфигурируй ! нет пока не пытался даже. Сейчас попробую
_____________________________________________________________________________________________________
Добавлено (27.11.2012, 23:51) --------------------------------------------- вот что у меня получилось
ldi Temp,(1<<COM0A0)|(1<<wgm1)__________; переключать ножку "OC1A" по совпадению (PB3- 15 ножка) out TCCR0A,Temp_________________________; подключили режим "CTC"
ldi Temp,(1<<cs01)________________________; и установили тактовый сигнал = CK 1:8 out TCCR0B,Temp_________________________; таймер начал считать!!!
LDI R19,0xFF______________________________; зададим фиксированную длительность импульса ( dec 15 ) OUT OCR0A,R19___________________________; и выведем ее в порт сравнения (8-ми битный )
ldi Temp,0_________________________________; обнуление таймера ( таймер 8-ми битный ) out TCNT0,Temp
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 23:07 |
|
| |
uwrtey | Дата: Среда, 28.11.2012, 17:24 | Сообщение # 363 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| Ну вот, час от часу не легче я его уже откомпилировал и только потом до меня дошло, что ножка OC1A занята контактом дисплея "reset" , сейчас придется экранчик на другую ножку вешать....
Добавлено (28.11.2012, 17:24) --------------------------------------------- кстати, я тут вспомнил что Ты говорил Quote вообще то запись в пин порта при его настройке как входной - включает (1) и отключает (0) резистор подтяжки ! так что это не бесполезное действие, а конфигурационное ! ну и решил проверить будет ли происходить программная генерация аппаратного прерывания, если я оставлю INT0 как ВХОД и буду выводить в него разные логические уровни ! как раз для того, что бы воспользоваться тем самым резистором подтяжки, про который Ты говорил. Я припаял между int0 и ОБЩИМ резюк (1 килоОм), для того что бы при отключенном резисторе подтяжки получать лог_0. Но из этого ни чего не ВЫШЛО. я ведь не знаю какое сопротивление у того самого резистора подтяжки и скорее всего сопротивление в 1КилоОм между общим и INT0 мало ! Что бы не гадать какой нужен резистор, я припаял 10 кОм и генерации все равно не оказалось!
сейчас перепаяю дисплэй! и проверю на OC1A и Т0
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 21:52 |
|
| |
ВитГо | Дата: Среда, 28.11.2012, 18:35 | Сообщение # 364 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| Quote (uwrtey) Ну вот, час от часу не легче я его уже откомпилировал и только потом до меня дошло, что ножка OC1A занята контактом дисплея D/C , сейчас придется экранчик на другую ножку вешать....
это нормальный процесс разработки :-) так оно обычно и бывает - пока делаешь устройство - несколько раз перебрасываешь функционал с пина на пин - пока не придумаешь как удобнее и правильнее
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Среда, 28.11.2012, 22:00 | Сообщение # 365 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| перепаял
Добавлено (28.11.2012, 22:00) --------------------------------------------- помнишь, в передатчике, с T1 устанавливали лог_0 на OC1A вот таким кодом Code ;+++++++++++++++++++++++++++++++++++ установка вывода OC1A=0
ldi R16,(1<<COM1A1)|(0<<COM1A0) ; (то есть мы в "0" устанавливаем не вывод параллельного порта B, а вывод таймера OC1A) out TCCR1A,R16
ldi R16,(1<<FOC1A) ; принудительно изменить состояние выходов OC1A и OC1B!!! out TCCR1C,R16
ldi R16,0b00000000 ; теперь скинули TCCR1C out TCCR1C,R16 ;+++++++++++++++++++++++++++++++++++
а как с T0 поступить? ( как организовать лог_0 ? )
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 22:01 |
|
| |
uwrtey | Дата: Среда, 28.11.2012, 22:41 | Сообщение # 366 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| сделал вот такую штуку, не работает! сейчас проверю генерацию на OC1A
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 23:05 |
|
| |
uwrtey | Дата: Среда, 28.11.2012, 23:19 | Сообщение # 367 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| .......странно, генерации на OC1A нету! и пропала генерация прерывания по INT0. ЗЫ само собой разумеется, в драйвере дисплея я внес поправку того пина, который перепаял...Добавлено (28.11.2012, 23:19) --------------------------------------------- ну вот нашел очередной свой косяк надо же было на OC0A вешать, а я на OC1A повесил.... ладно утром исправлю....
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 23:14 |
|
| |
uwrtey | Дата: Среда, 28.11.2012, 23:33 | Сообщение # 368 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| естественно схему надо будет изменить и драйвер дисплея.... ( ну и чудак же я.....)
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Среда, 28.11.2012, 23:44 |
|
| |
ВитГо | Дата: Четверг, 29.11.2012, 05:43 | Сообщение # 369 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| для OC0 не нужно делать задание уровня старта.. нам же он нужен только как генератор частоты.. фазу не учитываем там...
Виталий (аka ВитГо)
|
|
| |
uwrtey | Дата: Четверг, 29.11.2012, 13:12 | Сообщение # 370 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| ну вот, сделал... генерации на OC0A все равно нету... и в ручном режиме ( тыкая проводком) на экран теперь выходит 8 символов сразу........
регистр TIMSK не нужно ведь трогать ? у нас ведь не должно быть прерывания по совпадению таймера ??? или нужно организовать прерывание по совпадению таймера, а в самом обработчике прерываний поставить выход из обработчика прерываний???
Добавлено (29.11.2012, 13:12) --------------------------------------------- ну вот теперь я окончательно запутался.... решил проверить будет ли выводится на дисплей информация если я буду тыкать проводком в ручную с единственным лишь отличием от прошлого раза ( пин D/C повесил на 16 ногу микросхемы... вместо 14 ) и все изображения нет!
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Четверг, 29.11.2012, 14:02 |
|
| |
uwrtey | Дата: Четверг, 29.11.2012, 13:43 | Сообщение # 371 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| уф, ну вот сделал! правда сделал с помощью своего варианта, постоянно получаю число 07FC09DC
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Четверг, 29.11.2012, 15:53 |
|
| |
uwrtey | Дата: Четверг, 29.11.2012, 18:13 | Сообщение # 372 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| а вот и с Твоим вариантом получилось ( заново весь код собрал, видимо где то косяк был...) получаю число 07FC09FB
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Четверг, 29.11.2012, 18:14 |
|
| |
uwrtey | Дата: Четверг, 29.11.2012, 19:56 | Сообщение # 373 |
Генерал-майор
Группа: Администраторы
Сообщений: 3270
Статус: Offline
| ну, что дальше?
не успеваю за своими мыслями......
Сообщение отредактировал uwrtey - Четверг, 29.11.2012, 19:56 |
|
| |
ВитГо | Дата: Четверг, 29.11.2012, 20:07 | Сообщение # 374 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| отлично..
ну теперь делай захват длительностей например первых 4х импульсов с приемника и 3х пауз между ними и выводи на экран, потом нажимай кнопки и смотри длительности..
в общем то теперь рутина - написал проверил, написал проверил :-)
Виталий (аka ВитГо)
|
|
| |
ВитГо | Дата: Четверг, 29.11.2012, 20:07 | Сообщение # 375 |
Полковник
Группа: Администраторы
Сообщений: 2422
Статус: Offline
| я кстати про магазин tixer.ru отписался.. читал ?
у них достаточно дешевые компоненты...
Виталий (аka ВитГо)
|
|
| |
|