|
ATtiny 2313A почему то сбрасывается иногда. |
|
|
|
Apr 19 2014, 05:50
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 2-11-10
Пользователь №: 60 610

|
Здравствуйте. Такая проблема. Есть очень простая схема счетчика появления фазы в сети 220В. Схему прикрепил.
На PA0 подается напряжение с 5-ти вольтового адаптера от мобилы(с помощью этого адаптера определяется появилась ли фаза). Питает микроконтроллер другой адаптер от мобилы, на этот адаптер постоянно напряжение подается 220В. PA1 - висит в воздухе. Выводы PB0-PB7 и PD0-PD6 зажигают светодиоды, отображают счетчик появления фазы в двоичном виде. Все бы хорошо, но почему-то иногда при очередном появлении фазы, счетчик например должен показать "5", а вместо этого микроконтроллер похоже сбрасывается, и счетчик показывает "1". Редко это случается, ловил такую ситуацию только вначале, где то после того как микроконтроллер проработал минуту, но возможно и потом сбрасывается, не знаю точно. Код для мк тоже приведу, я в этой области любитель, поэтому код возможно покажется уродским  CODE .device ATtiny2313A .include "tn2313Adef.inc" .def SlopReg=R16 .def mask=R17 ;clock = 1 MHz ;======================================================================= Start: rjmp Init;
Init: ldi SlopReg,0b00000000; out DDRA,SlopReg; ldi SlopReg,0b11111111; out DDRB,SlopReg ldi SlopReg,0b01111111; out DDRD,SlopReg;
ldi SlopReg,0b11111110; out PortA,SlopReg ;
ldi SlopReg,0b00000000; Led0 - Led7 out PortB,SlopReg
ldi SlopReg,0b10000000; Led8 - Led14 out PortD,SlopReg ; Begin: ldi mask,0b00000001; маска для работы ldi Yh,0x00 ; счетчик ldi Yl,0x00
; Ищем состояние 0 State0: in SlopReg,PinA and SlopReg,mask brne State0
; Задержка ldi Xh,0x7f ldi Xl,0xff Delay1: sbiw Xh:Xl,1 brne delay1
; Еще раз проверяем нолик ли, если нет то все сначало State1: in SlopReg,PinA and SlopReg,mask brne State0
; Ищем состояние 1 State2: in SlopReg,PinA and SlopReg,mask breq State2
; Задержка ldi Xh,0x7f ldi Xl,0xff Delay2: sbiw Xh:Xl,1 brne delay2
; Еще раз проверяем единичка ли, если нет то все сначало State3: in SlopReg,PinA and SlopReg,mask breq State0
adiw Yh:Yl,1 ;Вывод результата out PortB,Yl
ldi SlopReg,0b10000000 or SlopReg,Yh out PortD,SlopReg;out Led8 - Led14 rjmp State0
End: ;====================================================================== В чем может быть проблема?
Сообщение отредактировал IgorKossak - Apr 19 2014, 19:24
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
|
|
|
|
|
 |
Ответов
|
Apr 28 2014, 10:15
|

Местный
  
Группа: Участник
Сообщений: 253
Регистрация: 15-04-10
Из: Волгоград
Пользователь №: 56 658

|
Цитата(Banks @ Apr 19 2014, 08:50)  Здравствуйте. Такая проблема. Есть очень простая схема счетчика появления фазы в сети 220В. Схему прикрепил.
На PA0 подается напряжение с 5-ти вольтового адаптера от мобилы(с помощью этого адаптера определяется появилась ли фаза). Питает микроконтроллер другой адаптер от мобилы, на этот адаптер постоянно напряжение подается 220В. PA1 - висит в воздухе. Выводы PB0-PB7 и PD0-PD6 зажигают светодиоды, отображают счетчик появления фазы в двоичном виде. CODE .device ATtiny2313A .include "tn2313Adef.inc" .def SlopReg=R16 .def mask=R17 ;clock = 1 MHz ;======================================================================= Start: rjmp Init;
Init: ldi SlopReg,0b00000000; out DDRA,SlopReg; ldi SlopReg,0b11111111; out DDRB,SlopReg ldi SlopReg,0b01111111; out DDRD,SlopReg;
ldi SlopReg,0b11111110; out PortA,SlopReg ;
ldi SlopReg,0b00000000; Led0 - Led7 out PortB,SlopReg
ldi SlopReg,0b10000000; Led8 - Led14 out PortD,SlopReg ; Begin: ldi mask,0b00000001; маска для работы ldi Yh,0x00 ; счетчик ldi Yl,0x00
; Ищем состояние 0 State0: in SlopReg,PinA and SlopReg,mask brne State0
; Задержка ldi Xh,0x7f ldi Xl,0xff Delay1: sbiw Xh:Xl,1 brne delay1
; Еще раз проверяем нолик ли, если нет то все сначало State1: in SlopReg,PinA and SlopReg,mask brne State0
; Ищем состояние 1 State2: in SlopReg,PinA and SlopReg,mask breq State2
; Задержка ldi Xh,0x7f ldi Xl,0xff Delay2: sbiw Xh:Xl,1 brne delay2
; Еще раз проверяем единичка ли, если нет то все сначало State3: in SlopReg,PinA and SlopReg,mask breq State0
adiw Yh:Yl,1 ;Вывод результата out PortB,Yl
ldi SlopReg,0b10000000 or SlopReg,Yh out PortD,SlopReg;out Led8 - Led14 rjmp State0
End: ;====================================================================== В чем может быть проблема? При беглом просмотре программки, сделал вывод что при каждом появлении 1 на PA0 у вас включается программный счетчик и считает пока эта 1 не пропадет. Соответственно единица пропала - сколько там насчитал счетчик неизвестно! Проверьте алгоритм , подтяните вывод резистором к нулю чтобы при отсутствии напряжения на нем гарантированно был "0" и к примеру кнопкой подавайте на него питание +5в. И смотрите что у вас получиться
|
|
|
|
|
Apr 28 2014, 11:09
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 2-11-10
Пользователь №: 60 610

|
Цитата(MaxiMuz @ Apr 28 2014, 14:15)  При беглом просмотре программки, сделал вывод что при каждом появлении 1 на PA0 у вас включается программный счетчик и считает пока эта 1 не пропадет. Соответственно единица пропала - сколько там насчитал счетчик неизвестно! Проверьте алгоритм , подтяните вывод резистором к нулю чтобы при отсутствии напряжения на нем гарантированно был "0" и к примеру кнопкой подавайте на него питание +5в. И смотрите что у вас получиться Все там нормально считается, посмотрите еще раз программу. Буду заменять адаптеры чем-нибудь и смотреть что получится. Спасибо всем за ответы
|
|
|
|
Сообщений в этой теме
Banks ATtiny 2313A почему то сбрасывается иногда. Apr 19 2014, 05:50 kovigor Цитата(Banks @ Apr 19 2014, 08:50) Есть о... Apr 19 2014, 13:04 Banks Цитата(kovigor @ Apr 19 2014, 17:04) 1. П... Apr 19 2014, 18:13  kovigor Цитата(Banks @ Apr 19 2014, 21:13) 1.Каки... Apr 20 2014, 14:59  RabidRabbit Цитата(Banks @ Apr 19 2014, 22:13) 5.Прин... Apr 23 2014, 14:11 Павлик Для начала нужно инициализировать векторы прерыван... Apr 22 2014, 17:41 Сергей Борщ Цитата(Павлик @ Apr 22 2014, 20:41) Для н... Apr 23 2014, 06:58 Banks Просили выложить зарядные устройства:
1. Используе... Apr 26 2014, 09:47 muravei Цитата(Banks @ Apr 26 2014, 13:47) 1. Исп... Apr 26 2014, 11:52  kovigor Цитата(muravei @ Apr 26 2014, 14:52) Когд... Apr 26 2014, 21:16 zombi 1. Попробуйте выход контролируемого БП подключить ... Apr 26 2014, 23:02  MaxiMuz Цитата(Banks @ Apr 28 2014, 14:09) Все та... Apr 29 2014, 07:56 ILYAUL Просто удалил всё лишнее
CODE.device ATtiny2313A
... Apr 29 2014, 11:06 zombi Цитата(ILYAUL @ Apr 29 2014, 14:06) Прост... Apr 29 2014, 18:36 ILYAUL По хорошему нужен , даже когда нет стэковых операц... Apr 30 2014, 04:16
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|