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

 
 
17 страниц V  « < 10 11 12 13 14 > »   
Reply to this topicStart new topic
> tiny2313 & mega8, посоветуйте плз
Wild007
сообщение Dec 11 2006, 10:19
Сообщение #166


Местный
***

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



Цитата(Terapefft @ Dec 11 2006, 09:06) *
я уже пробовал отттуда cli убирать, и в главном цикле тоже поубирал все, все равно оно срабатывает только в первом цикле

Баланс CLI и SEI, скорее всего, нарушентся НЕ в главном цикле, а в пп, на которые уходит программа по RCALL. Ведь даже
Код
; Индикация измеренного напряжения в непрерывном режиме

я вижу нарашение баланса при уходе на RCALL.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
freux
сообщение Dec 11 2006, 11:15
Сообщение #167


Участник
*

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



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


Мне показалось, что в обработчике прерывание от INT1 запрещается, и более нигде не разрешается (за исключением первичной инициализации).
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Dec 11 2006, 11:20
Сообщение #168


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

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



я щас просмотрел еще раз всю прогу, поубирал cli из п/п, все равно срабатывает только когда из цикла выхожу (нажатие "стоп")

2 freux в главном цикле после включения насоса стоит разрешение прерывания
Go to the top of the page
 
+Quote Post
Wild007
сообщение Dec 11 2006, 11:32
Сообщение #169


Местный
***

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



Попробуй после
Код
ldi count,0b10000000; разрешение прерывания INT1
    out gicr,count

включать светодиод, а
Код
CNT_INT1:
    in rin,sreg
    push rin

    inc cntdat
    cpi cntdat,$02
    brne NNN

Выключать.
Похоже на то, что прога где-то зацикливается и не выходит на разрешение прерывания.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение Dec 11 2006, 11:43
Сообщение #170


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

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



В исходнике inddat.txt от 8.12. 23 штуки cli и 19 штук sei. Нарушен баланс. Ещё раз проверь внимательно.
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Dec 11 2006, 12:07
Сообщение #171


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

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



пробовал со светодиодом, включал после насоса, а выключал в П/п, но он еще гаснет по нажатию "стоп", а насос все равно тока после того как из цикла выходиш выключается
Go to the top of the page
 
+Quote Post
Wild007
сообщение Dec 11 2006, 12:40
Сообщение #172


Местный
***

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



Цитата(Alex_Pol @ Dec 11 2006, 10:43) *
В исходнике inddat.txt от 8.12. 23 штуки cli и 19 штук sei. Нарушен баланс. Ещё раз проверь внимательно.

Вот видишь Alex_Pol за тебя посчитал smile.gif
"Методом светодиода" можещь проверить и CLI с SEI: по CLI выключаешь светодиод, а по SEI -- включаешь. И видишь сразу включены прерывания или нет.

Сообщение отредактировал Wild007 - Dec 11 2006, 12:41


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


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

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



я вот щас сделал просто в п/п зажигать диод, из всех подпрограмм поубирал cli, диод зажигается тока когда я из цикла выхожу (после нажатия "стоп")....может там че нить с регистрами происходить? может такое быть?? как это можно определить?
Go to the top of the page
 
+Quote Post
Wild007
сообщение Dec 11 2006, 15:14
Сообщение #174


Местный
***

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



Цитата(Terapefft @ Dec 11 2006, 12:03) *
я вот щас сделал просто в п/п зажигать диод, из всех подпрограмм поубирал cli, диод зажигается тока когда я из цикла выхожу (после нажатия "стоп")....может там че нить с регистрами происходить? может такое быть?? как это можно определить?

За "влет" в прерывание INT1 отвечают только два бита -- I в SREG и INT1 в GICR(GIMSK) и, если они установлены, то состояние регистров R0-R31 не имеет ни кокого значения smile.gif


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Dec 11 2006, 15:44
Сообщение #175


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

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



вот я щас сделал, диод зажигаетсяsmile.gif вначале проги порт так настроил:
clr rin ;
out ddrd,rin ;
out portd,rin ;
прерывание вроде работает, потом я попробовал в п/п выключать насос без сравнения с кол-вом импульсов, но почему то диод загорается сразу как происходит замыкание датчика, а насос тока в конце цикла выключается. почему такое может быть?
Go to the top of the page
 
+Quote Post
Wild007
сообщение Dec 11 2006, 15:55
Сообщение #176


Местный
***

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



А "дребезг" контактов учел? Когда коротишь отверткой получишь "тучу" импульсов. Кроме того -- на входах желательно иметь конденсаторы 20-50пФ.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
freux
сообщение Dec 11 2006, 16:01
Сообщение #177


Участник
*

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



Цитата(Terapefft @ Dec 11 2006, 15:44) *
вот я щас сделал, диод зажигаетсяsmile.gif вначале проги порт так настроил:
clr rin ;
out ddrd,rin ;
out portd,rin ;

Ничего не понял. Светодиод на D? 0 --> в DDR порта, порт на вход.

Terapefft, может ну иго нафиг, программирование это. Может, будем людей лечить??
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Dec 11 2006, 16:07
Сообщение #178


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

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



дребезг не учитывал....а как его учитывать? и на какие входы надо кондеры? а почему тогда диод сразу загорается???

2 freux светодиод не на D, он вобще на плате индикации находится, на D датчик подключен, просто в п/п обработки прерывания я диод включаю, чтоб посмотреть работает прерывание или нет
Go to the top of the page
 
+Quote Post
Wild007
сообщение Dec 11 2006, 16:10
Сообщение #179


Местный
***

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



Цитата(Terapefft @ Dec 11 2006, 15:04) *
дребезг не учитывал....а как его учитывать? и на какие входы надо кондеры? а почему тогда диод сразу загорается???

Дребезг контактов можно убирать програмно или с помощью RS триггера -- аппаратно. Кондеры на пины МК которые ВХОДЫ smile.gif . А где вставлено зажигание "диода" -- выкладывай код.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
Terapefft
сообщение Dec 11 2006, 16:31
Сообщение #180


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

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



вот исходник где диод зажигается. У меня на датчике 3 вывода: один 0 В, один +24 В и нагрузка (я его подключил через резистор и диод к ноге контроллера)
Прикрепленные файлы
Прикрепленный файл  dat.txt ( 70.28 килобайт ) Кол-во скачиваний: 64
 
Go to the top of the page
 
+Quote Post

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

 


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


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