|
|
  |
tiny2313 & mega8, посоветуйте плз |
|
|
|
Dec 11 2006, 16:47
|
Участник

Группа: Новичок
Сообщений: 41
Регистрация: 7-02-05
Пользователь №: 2 473

|
Цитата(Terapefft @ Dec 9 2006, 13:10)  сначала в первом цикле прерывание сразу срабатывает диод загорается, а во втором уже не срабатывает, а срабатывает только когда из цикла выйдешь...почему так??? Еще раз, Прерывание от INT1 разрешается ldi rin,0b10000000 out gicr,rin в "массе" кода с коментариями: ..включить двигатель ..включить тормоз ..сводим губки .. еще губки, и т.д. больше нигде в GICR разрешение INT1 не заносится Это так задуманно? Ведь в самом INT1 прерывании оно запрещается занесением в GICR нуля
|
|
|
|
|
Dec 11 2006, 17:12
|

Частый гость
 
Группа: Свой
Сообщений: 167
Регистрация: 14-06-06
Из: Рязань
Пользователь №: 18 052

|
Цитата(Wild007 @ Dec 11 2006, 16:54)  Вопрос по датчику: "нагрузка" это чё открытый коллектор? Вопрос по "диоду": к какому порту(ножке) и как он подключен? И приводи только часть кода, где он включается\выключается. да нагрузка это открытый ключ. При подключении использовал резистор на 10 кОм и стабилитрон КС156А. Вот в п/п я включаю светодиод: cnt_int1: push rin in rin1,sreg ; çàïîìíèòü ðåãèñòð ñîñòîÿíèÿ push rin1 sbr svet,0b00010000 ; светить Т1 ; inc cntdat ; cpi cntdat,$02 ; brne NNN ldi radr,doza_0; отключить насос rcall decod sbr reg_flgs,0b00000001 ; clr cntdat clr rin out gicr,rin ;NNN: pop rin1 ; out sreg,rin1 pop rin reti только к ноге PD3 подсоединяется
Эскизы прикрепленных изображений
|
|
|
|
|
Dec 11 2006, 17:29
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Ну дык если это открытый коллектор, то подключение должно быть: с "выхода" резистор на +5В и "выход" через 100-500 Ом на PD3 (для ограничения тока), плюс два диода для защиты входа. Но твоя "конструкция": Код sbr svet,0b00010000; светить Т1 ; inc cntdat ; cpi cntdat,$02 ; brne NNN ldi radr,doza_0; отключить насос rcall decod sbr reg_flgs,0b00000001; clr cntdat если загорелся "диод", то и насос должен выключиться: Код ldi radr,doza_0; отключить насос Значит что-то неправильно с этим LDI А в конце -- там полное выключение
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Dec 12 2006, 09:43
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Dec 11 2006, 16:42)  просто у нас также индуктивный датчик двери подключался, поэтому я решил не парится и подключил его также  вот тока мне непонятно почему же все таки диод загорается а насос не выключается... Если код Код ldi radr,doza_0; отключить насос rcall decod ты считаешь, что работает неправильно, то повесь светодиод на выход порта B, который управляет насосом, и посмотри -- он должен переключиться. В п\п decod опять есть CLI, но нет SEI.
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Dec 12 2006, 12:07
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Я сейчас посмотрел в Студии п\п delayЦитата обработка сигналов с этих датчиков происходит видимо в п/п delay не вдимо, а точно. Цитата там видимо дело не в порте В, к нему подключен дешифратор, с порта В на него идет адреса, похоже что так. Надо разобраться с алгоритмом работы дешифратора и переписать delay
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
Dec 12 2006, 14:29
|

Местный
  
Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672

|
Цитата(Terapefft @ Dec 12 2006, 12:59)  тут вот еще проблема, если в п/п я отключаю насос, то у меня если я сразу вначале цикла замкну и не буду до конца размыкать то насос не включится, Как только мотор выключился, то надрбность в прерывании пропадает. Значит, сразу после команды остановки мотора, запрещаем прерывания до следующего включения двигателя, тогда ОПЯТЬ разрешаем прерывание, остановили двигатель -- запретили и т.д. Цитата как можно сделать штоб он по любому включался независимо от состояния датчика (ведь он при вращении насоса может остановится как на "дырке" так в замкнутом состоянии) ??? А это настройка прерывания по фронтам или уровню. Цитата п/п delay нужно переделать штоб она опрашивала мой индуктивный датчик??? Я всё же думаю, что кроме п\п delay надо переопределить таблицу: Код .equ dvig_1 =0b00101000;+ OT1 DD2 .equ torm_1 =0b00101011;+ OT4 DD2 .equ doza_1 =0b00101100;+ OT5 DD2 .equ dat_1 =0b00101101;+ OT6 DD2 .equ gprod_1 =0b00101110;+ OT7 DD2 .equ gpop_1 =0b00101111;+ OT8 DD2 .equ pc1_1 =0b00101001;+ OT2 DD2 .equ nprod_1 =0b00011100;+ OT13 DD3 .equ dater_1 =0b00011010;+-OT11 DD3 Ïðîãð, íî íå èñï .equ npop_1 =0b00011011;+ OT12 DD3 .equ gotov_1 =0b00011001;- OT10 DD3 .equ ozon_1 =0b00011000;- OT9 DD3 .equ metka_0 =0b00011110;- OT14 DD3 ;
.equ dvig_0 =0b00100000;+ OT1 DD2 .equ torm_0 =0b00100011;+ OT4 DD2 .equ doza_0 =0b00100100;+ OT5 DD2 .equ dat_0 =0b00100101;- OT6 DD2 .equ gprod_0 =0b00100110;+ OT7 DD2 .equ gpop_0 =0b00100111;+ OT8 DD2 .equ pc1_0 =0b00100001;+ OT2 DD2 .equ nprod_0 =0b00010100;+ OT13 DD3 .equ dater_0 =0b00010010;+-OT11 DD3 Ïðîãð, íî íå èñï .equ npop_0 =0b00010011;+ OT12 DD3 .equ gotov_0 =0b00010001;- OT10 DD3 .equ ozon_0 =0b00010000;- OT9 DD3 .equ metka_1 =0b00010110;- OT14 DD3 Это таблица команд дешифратора и в ней присутствуют ничего не говорящие постороннему человеку символы типа ОТ9, ОТ14. Что они обозначают для меня загадка  . Но твоя проблема с включением и выключением двигателя скрыта (ИМХО) в этой таблице  .
Сообщение отредактировал Wild007 - Dec 12 2006, 14:30
--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|