простое Enable Int20 ругается на синтаксис
Как сконфигурировать в меге88 INT20 ?
Сообщений 1 страница 12 из 12
Поделиться22008-04-15 21:05:49
на
On PCINT20 Label1 Nosave
Enable Interrupts
Enable PCINT20
тоже ругается
Поделиться32008-04-16 00:35:20
темный я, не уверен, но из m88def.dat
[INTS]
INT0=$001 ; External Interrupt0 Vector Address
INT1=$002 ; External Interrupt1 Vector Address
PCINT0=$003 ;Pin Change Interrupt0
PCINT1=$004 ;Pin Change Interrupt1
PCINT2=$005 ;Pin Change Interrupt2
WDT=$006 ;Watchdog Timeout
OC2A =$007 ; Output Compare2 Interrupt Vector Address
OC2B =$008 ; Output Compare2 Interrupt Vector Address
OVF2=$009 ; Overflow2 Interrupt Vector Address
ICP1=$00A ; Input Capture1 Interrupt Vector Address
OC1A=$00B ; Output Compare1A Interrupt Vector Address
OC1B=$00C ; Output Compare1B Interrupt Vector Address
OVF1=$00D ; Overflow1 Interrupt Vector Address
OC0A=$00E ; Output Compare2 Interrupt Vector Address
OC0B=$00F ; Output Compare2 Interrupt Vector Address
OVF0=$010 ; Overflow0 Interrupt Vector Address
SPI =$011 ; SPI Interrupt Vector Address
URXC=$012 ; USART Receive Complete Interrupt Vector Address
UDRE=$013 ; USART Data Register Empty Interrupt Vector Address
UTXC=$014 ; USART Transmit Complete Interrupt Vector Address
ADCC=$015 ; ADC Interrupt Vector Address
ERDY=$016 ; EEPROM Interrupt Vector Address
ACI =$017 ; Analog Comparator Interrupt Vector Address
TWI =$018 ; Irq. vector address for Two-Wire Interface
SPM =$019 ; SPM complete Interrupt Vector Address
это не о том?
а PCINT20 я в даташите (10.3 Interrupt Vectors in ATmega88) тоже не нашел..
Поделиться42008-04-16 11:14:55
вот из того же m88def.dat
PCINT23 = 7 ; PCMSK2
PCINT22 = 6
PCINT21 = 5
PCINT20 = 4
PCINT19 = 3
PCINT18 = 2
PCINT17 = 1
PCINT16 = 0
Поделиться52008-04-16 12:25:13
на сколько я понял, писать надо как-то так:
Pcmsk2 = &B00010000 Enable Pcint2 On Pcint2 Label1 Nosave Enable Interrupts
Отредактировано EdGull (2008-04-16 12:25:55)
Поделиться62008-04-16 12:36:16
Короче, не знаю правильно или нет, но у меня так заработало.
Поделиться72008-04-16 21:08:14
Я с таким столкнулся в тане25,45 с ацп. Простое config adc= не катит, пришлось писать все непосредственно в регистры, что крайне неудобно.После этого я стал все больше смотреть в сторону си.
Вот с тех пор непосредственно в регистр и пишу, чтобы не было таких конфузов
Поделиться82011-05-12 18:01:02
У меня то же не получилось назначить скажем на пин "TX" через "pcintХ".
С конфигурированием у Баском-а, как-то местами запутано. Сдается мне, что из-за этого может подглючивать контроллер, т.к. конфигурируется не всеми местами правильно...надо проверять.
Вообще сама команда "Config" должна быть проще/нагляднее. Зачем в настройках самой программы (в интерфейсе) есть жесткая привязка к ряду конфигураций по подключению периферии. Не гибко как-то. Возможно конечно в версии 2 это исправили/изменили, но лучше бы там просто была полная конфигурация кристалла сделана и/или в коде. Можно было и просто к проекту привязать распиновку... Я по началу так и думал, увидев в окне свой AVR, но оказалось - это просто справочное пособие/памятка. 
Поделиться92011-06-25 19:42:52
подскажите столкнулся с проблемой использования в проекте на mega88 прерываний INT2, INT3 (и выше). Например на такое On INT2 Label компилятор ругается Unknown Interrupt.... Также и в меге48. Версия 1.11.9.8
Поделиться102011-06-26 11:14:00
до этого писал только для мег8 и 32 и поэтому на автомате и для 88 начал писать INT.. спасибо!
Поделиться112011-06-26 12:01:11
Как я понял INT1 и PCINT1 работают как разные прерывания. Тоесть int1 можно сразу применять, разрешив его. А pcint1 для начала нужно сконфигурировать так:
Pcmsk0 = &B00000001 Enable Pcint1 On Pcint1 Label
если не прав поправьте
Поделиться122011-06-26 16:30:53
кто пробывал засимулировать работу прерываний PCINT в Proteus ? По баскомовскому симулятору прерывания срабатывают, а в протеусе ни вкакую...