Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » компаратор


компаратор

Сообщений 1 страница 10 из 10

1

как заставить работать компаратор?

Код:
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 36
$swstack = 36
$framesize = 36


 Acsr.7 = 0                   '    питание компаратора вкл
 Acsr.6 = 1                   '    внутренний ион вкл
 Acsr.5 = 0                   '    состояние выхода компаратора
 Acsr.4 = 0                   '    флаг прерывания
 Acsr.3 = 1                   '    включение прерывания компаратора
 Acsr.2 = 0                   '    захват таймера выкл
 Acsr.1 = 0                   '    срабатывает
 Acsr.0 = 0                   '    по любому изменению

 Config Portb.2 = Output
 Enable Interrupts
 Enable Aci
 On Aci R
 Dim A As Byte


 Do
 A = Acsr
 Loop


 R:
   ' всё работает,   флаг прерывания устанавливается но сюда не идёт
   ' соответственно и флаг прерывания не сбрасывается
 Toggle Portb.2
 Return

вот такой код в протеусе не заходит в прерывание, хотя флаг его устанавливается. Тоже на 2313. В железе на 2313 работало, на атмеге нет. Очень надо.

0

2

В железе заработало нормально, там в другой части кода ошибка была. По протеусу вопрос открыт.

0

3

Простые програмки для начинающих седьмой код по счету в сообщении.

0

4

И чё там?  :flag:
Как пользоваться компаратором я понял, мне бы в протеусе это просимулировать.

Отредактировано aleksey (2016-03-14 15:36:42)

0

5

У меня работает:

Код:
$crystal = 8000000
$hwstack = 36
$swstack = 36
$framesize = 36


' Acsr.7 = 0                   '    питание компаратора вкл
' Acsr.6 = 1                   '    внутренний ион вкл
' Acsr.5 = 0                   '    состояние выхода компаратора
' Acsr.4 = 0                   '    флаг прерывания
' Acsr.3 = 1                   '    включение прерывания компаратора
' Acsr.2 = 0                   '    захват таймера выкл
' Acsr.1 = 0                   '    срабатывает
' Acsr.0 = 0                   '    по любому изменению

 Config Portb.2 = Output
 Config Aci = On , Compare = On , Trigger = Toggle
' Тут хоть Compare = On, хоть Compare = Off
 Enable Interrupts
 Enable Aci
 On Aci R
 Dim A As Byte


 Do
 A = Acsr
 Loop


 R:
   ' всё работает,   флаг прерывания устанавливается И СЮДА ИДЕТ
 Toggle Portb.2
 Return

Отредактировано SIvan (2016-03-16 20:49:55)

0

6

какой протеус? у меня 8.3

0

7

7.7 SP2

+1

8

спасибо

0

9

Получилось?

0

10

да в железе то работает нормально, а в этом потом попробую, сейчас уже не надо

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » компаратор