реклама на сайте
подробности

 
 
17 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> tiny2313 & mega8, посоветуйте плз
Wild007
сообщение Nov 22 2006, 09:51
Сообщение #76


Местный
***

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



Можно еще так:
.....
SBRS REG_FLAG,FDOZ
RJMP rrr
TST T_NAS1
BRNE NNN
CBR reg_flgs,1<<FDOZ
LDI radr,doza_0 ;
rcall decod
RJMP NNN
; sbrc reg_flgs,FDOZ
; rjmp NNN
rrr: ldi radr,doza_1 ; дозатор на всасывание
rcall decod ;
SBR reg_flgs,1<<FDOZ ;флаг включения насоса
LDI T_NAS1,$a
NNN:
.......
timer2:
push rin
ldi rin,$3c ; $3c=60
out tcnt2,rin ;
SBRS reg_flgs,FDOZ
RJMP MMM
DEC T_NAS1
; BRNE MMM
; CBR reg_flgs,1<<FDOZ
; LDI radr,doza_0 ;
; rcall decod
MMM:


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 22 2006, 10:35
Сообщение #77


Частый гость
**

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



теперь вобще не работает.....sad.gif
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 22 2006, 10:56
Сообщение #78


Частый гость
**

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



то есть цикл идет а насос не включается
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 22 2006, 11:58
Сообщение #79


Частый гость
**

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



я вот щас попробовал еще раз так как вы мне вчера написали, насос не включался из за того что в ПП delay параметр FDOZ выставлялся в "1" и поэтому вот здесь
sbrc reg_flgs,FDOZ ;
rjmp NNN

ldi radr,doza_1 ; вкл насос
rcall decod ;
SBR reg_flgs,1<<FDOZ ;флаг вкл насоса
LDI T_NAS1,$5
насос не включался. щас он включается но не выключается.
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 22 2006, 12:23
Сообщение #80


Местный
***

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



Цитата(Terapefft @ Nov 22 2006, 10:58) *
я вот щас попробовал еще раз так как вы мне вчера написали, насос не включался из за того что в ПП delay параметр FDOZ выставлялся в "1" и поэтому вот здесь
sbrc reg_flgs,FDOZ ;
rjmp NNN

ldi radr,doza_1 ; вкл насос
rcall decod ;
SBR reg_flgs,1<<FDOZ ;флаг вкл насоса
LDI T_NAS1,$5
насос не включался. щас он включается но не выключается.

Потому что нарушен старый алгоритм работы програмы, а я предлагал (по моим подсказкам) создать новый алгоритм. Сейчас насос выключается и сразу опять включается smile.gif. Существующий алгоритм слишком прямой и запутаный, с ним разбираться -- полный рабочий день надо потратить, а времени и так в обрез.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Семён
сообщение Nov 22 2006, 12:33
Сообщение #81


Частый гость
**

Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922



Сразу скажу, что не смотрел ваш код, но с подобными проблемами встречался. ИМХО: обратите внимания, не изменяется ли контекст процессора (регистры) при обработки прерываний. Для программ написанных на ассемблере, особенно для людей начавших заниматься микроконтроллерами с АВР, довольно распространенная ошибка.


--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 23 2006, 13:37
Сообщение #82


Частый гость
**

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



сегодня переделал все очередной раз, насос включается и выключается (выключение в п/п обработки прерывания таймера2), но почему то время в течении которого насос включен не изменяется (пробовал заносить туда разные значения), дикрементируется время в п/п таймера2. насос выключается после всего цикла. почему же таймер не считает???
Прикрепленные файлы
Прикрепленный файл  avt.txt ( 70.35 килобайт ) Кол-во скачиваний: 66
 
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 23 2006, 14:35
Сообщение #83


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Terapefft @ Nov 23 2006, 13:37) *
сегодня переделал все очередной раз, насос включается и выключается (выключение в п/п обработки прерывания таймера2), но почему то время в течении которого насос включен не изменяется (пробовал заносить туда разные значения), дикрементируется время в п/п таймера2. насос выключается после всего цикла. почему же таймер не считает???

В процедуре обработки прерывания Timer2 нужно ОБЯЗАТЕЛЬНО сохранять SREG.
посмотрите как это сделано в Timer0.
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 23 2006, 14:59
Сообщение #84


Частый гость
**

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



пробовал уже, все равно не помогает. причем когда меняешь параметры (время нагрева например), уже когда контролер находится в устройстве, никак не связаные со вторым таймером, насос все равно отключается только когда проходит весь цикл
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 24 2006, 09:32
Сообщение #85


Местный
***

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



Цитата(Terapefft @ Nov 23 2006, 13:59) *
пробовал уже, все равно не помогает. причем когда меняешь параметры (время нагрева например), уже когда контролер находится в устройстве, никак не связаные со вторым таймером, насос все равно отключается только когда проходит весь цикл

Програма изобилует SEI и CLI и скорее всего где-то запрещается прерывание и до окончания цикла оно не возобнавляется. (Пробовал в отладчике).


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 24 2006, 13:14
Сообщение #86


Частый гость
**

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



я уже щас попробовал убрать почти все CLI все равно выключается только когда проходит весь цикл sad.gif а из за чего еще может такое происходить???
Go to the top of the page
 
+Quote Post
Wild007
сообщение Nov 24 2006, 14:27
Сообщение #87


Местный
***

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



Цитата(Terapefft @ Nov 24 2006, 12:14) *
я уже щас попробовал убрать почти все CLI все равно выключается только когда проходит весь цикл sad.gif а из за чего еще может такое происходить???

Прогони програму через DEBUG (CTRL+F7) и САМ определишь где глюк. Потратишь 2-3 часа на отладку и найдешь. За тебя никто не будет этого делать smile.gif . Потом нам раскажешь smile.gif .


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Nov 24 2006, 17:47
Сообщение #88


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(Wild007 @ Nov 24 2006, 14:27) *
За тебя никто не будет этого делать smile.gif . Потом нам раскажешь smile.gif .

Сломался, коллега? wink.gif
Я бы может и занял место в строю, но ассемблер совсем не знаю. blink.gif


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
singlskv
сообщение Nov 24 2006, 23:21
Сообщение #89


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Wild007 @ Nov 24 2006, 14:27) *
За тебя никто не будет этого делать smile.gif . Потом нам раскажешь smile.gif .

2 Terfpefft
Если Вы реально хотите разобраться как это все работает,
то ИМХО, Вам стоит потратить пару дней, на выяснение всех подробностей
работы прерываний, и прерываний таймеров в частности...
Попробуйте на время забыть про все Ваши насосы с нагревателями,
и просто напишите тестовую программу такого вида:
1.Используем 1 таймер, например таймер1 (только 1 таймер!!!)
2. В качестве испольнительных механизмов выбираем "светодиоды" ну
например на порту B, "1" горит ,"0" не горит, 4-8 штук.
3.Для каждого диода на порту В заданы, время сколько он должен гореть и
сколько "не гореть".
4.и так до бесконечности smile.gif
Если Вы не поленитесь выполнить данное задание (если будут вопросы- поможем),
то, ИМХО, без труда исправите все ошибки в "Вашем" коде,
хотя, скорее всего после этого, Вы его перепишите полностью, причем в
худшем случае, неделя писать, неделя отлаживать... smile.gif

А отлаживать(искать ошибки) в 70+Кб чужого кода не будет никто... sad.gif
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Nov 27 2006, 08:53
Сообщение #90


Частый гость
**

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



2 singlskv
харашо smile.gif) попробую....только с этой прогой я уже не успел, оборудование уже отгружать надо...придется аппаратно решать проблему
Go to the top of the page
 
+Quote Post

17 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 11:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01501 секунд с 7
ELECTRONIX ©2004-2016