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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> AVRStudio 414 или я что то не дочитал?, Непонятная работа с прерываниями
gte
сообщение May 17 2008, 19:58
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Проблема с симуляцией ATMega88.
Часть пинов порта С на ввод. Включена подтяжка, наложена маска.
DDRC = 0x07;
PORTC = 0x38;
PCMSK1 = 0x28;
Ставлю брекпоинт на программу обработки прерываний. В ней пусто или нет, не играет роли.
Выставляю 1 на PC3. Зацикливается на прерывании.
Пробую на порту B при тех же условиях - все нормально.
Кто встречался с такой проблемой?
Go to the top of the page
 
+Quote Post
Nick_Shl
сообщение May 17 2008, 20:47
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 17-04-08
Пользователь №: 36 850



Цитата(gte @ May 17 2008, 22:58) *
Выставляю 1 на PC3. Зацикливается на прерывании.
Может в прерывании надо PC3 в 0 ставить?
Go to the top of the page
 
+Quote Post
gte
сообщение May 17 2008, 20:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Я выставляю 1 в симуляторе установив соответствующую галочку. Если ее снять, естественно, прерывание снимется. Слил другую версию 4.14, буду проверять.
Go to the top of the page
 
+Quote Post
Nick_Shl
сообщение May 17 2008, 21:03
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 17-04-08
Пользователь №: 36 850



Цитата(gte @ May 17 2008, 23:58) *
Я выставляю 1 в симуляторе установив соответствующую галочку. Если ее снять, естественно, прерывание снимется. Слил другую версию 4.14, буду проверять.
А разве не правильное поведение? Есть 1 - идем в прерывание. Или вам по изменению прерываться надо? Или вобще не надо?
Go to the top of the page
 
+Quote Post
gte
сообщение May 17 2008, 21:45
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Мне надо, что бы работало как должно.
У Меги88P CINT2,PCINT1,PCINT0 - Pin Change Interrupt Request 1. Порты B и D ведут себя в симуляторе адекватно. Изменил состояние прошло прерывание до следующего изменения. А порт С при установке ему "1" не хочет вылезать из прерывания, пока не сниму галочку на PINС, а PIND это описка.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 17 2008, 21:59
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(gte @ May 18 2008, 01:45) *
А порт С при установке ему "1" не хочет вылезать из прерывания, пока не сниму галочку на PIND.

Не очень понятно . PORTC И PIND разные порты


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение May 19 2008, 11:15
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Студия глюковаста... Я для имитации прерывания ставлю галку в бите флага, для симуляции достаточно. Именно потому, что изменения на входах портов часто не отслеживаются, ну их...
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 19 2008, 19:03
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(Maik-vs @ May 19 2008, 15:15) *
Студия глюковаста... Я для имитации прерывания ставлю галку в бите флага, для симуляции достаточно. Именно потому, что изменения на входах портов часто не отслеживаются, ну их...

я только , что 2-3 дня, писал подпрограмы для прерываний по INT0 INT1 INTNT2 по спаду и уровню 0, а также PCINT0-3 и иммулировал всё на последней студии - работает и определяются прекрасно и по флагу и по портам .


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
gte
сообщение May 19 2008, 19:26
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Цитата(ILYAUL @ May 19 2008, 23:03) *
а также PCINT0-3 и иммулировал всё на последней студии - работает и определяются прекрасно и по флагу и по портам .

Я смотрел на 580 и 589. Можете подсказать какая у Вас версия и для какого процессора смотрели?
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 19 2008, 19:45
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(gte @ May 19 2008, 23:26) *
Я смотрел на 580 и 589. Можете подсказать какая у Вас версия и для какого процессора смотрели?


Вот Вам code для проверки. Свеже написанный для Studio 4.14 -589
Код
include "D:\AVR\AVR Tools\AvrAssembler2\Appnotes\m164pdef.inc"

.def    temp= R16

.org    0
.cseg



        rjmp RESET; Reset
.org    INT0addr
        rjmp INT0set; IRQ0
.org    INT1addr
        rjmp INT1set; IRQ1
;.org    INT2addr
;        jmp INT2set; IRQ2
.org    PCI0addr
        rjmp PCINTset; PCINT0
RESET:
        ldi        temp,high(RAMEND)    
        out        SPH,temp          
        ldi        temp,low(RAMEND)
        out        SPL,temp

        cli                  
        

;*************************************************
;*                                               *
;*       Initialization внешних прерываний       *
;*                                               *
;*                                               *
;*************************************************
                
        ldi        temp,(1<<ISC01)|(1<<ISC11)|(1<<ISC21)
        sts        EICRA,temp
        ldi        temp,(1<<INT0); Прерывания от кнопок SET,(+) и (-)
        out        EIMSK,temp
        sts        PCICR,temp            
        ldi        temp,(1<<PCINT0)|(1<<PCINT1)
        sts        PCMSK0,temp    ; Прерывание от внешнего компаратора
                            ; и DS        
        sei

MAIN:  rjmp     MAIN      

INT0set:
        
                    
        
;        call    DELAYTset
        sei
        rjmp    MAIN

INT1set:
        SEI
        jmp        MAIN





PCINTset:

        SEI    
        rjmp    MAIN



Ой , Sorry забыл INT0 и INT1 - pin PD2-PD3 portD
PCINT0- PCINT1 pin PA0 и PA1 PORTA

Сообщение отредактировал ILYAUL - May 19 2008, 19:54


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
gte
сообщение May 19 2008, 19:56
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 318
Регистрация: 13-02-05
Из: Липецкая область
Пользователь №: 2 613



Я же писал, что с портом B все нормально, проблемы с портом С.
Да и Мега не та.

Кстати, в версии 4.13 для Меги 88 были доступны не все частоты при симуляции, в 4.14 исправили.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 19 2008, 20:05
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(gte @ May 19 2008, 23:56) *
Я же писал, что с портом B все нормально, проблемы с портом С.
Да и Мега не та.

Кстати, в версии 4.13 для Меги 88 были доступны не все частоты при симуляции, в 4.14 исправили.


1. Где Вы видите портB
2 Я так понял, что у вас мега88
Плиз пины которые Вы испопользуете для прерываний , счас поправлю код под Вас и посмотрю
3. Вы можете создать новый проект указав , что будите работать с Mega 164P и исправив INCLUDE погонять этот код


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 19 2008, 21:34
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(gte @ May 19 2008, 23:56) *
Я же писал, что с портом B все нормально, проблемы с портом С.
Да и Мега не та.

Кстати, в версии 4.13 для Меги 88 были доступны не все частоты при симуляции, в 4.14 исправили.

Проверил на твоей
Да друже , интересненько. PC3 флаг не сбрасывает , если pin в 1 , но реагирует , если возвращаешь в ноль т.е прерывание выполняется один раз , а не бесконечно , как при единице. Завтра отошлю код в ATMEL , пусть копают


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение May 20 2008, 09:24
Сообщение #14


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(ILYAUL @ May 19 2008, 23:03) *
я только , что 2-3 дня, писал подпрограмы для прерываний по INT0 INT1 INTNT2 по спаду и уровню 0, а также PCINT0-3 и иммулировал всё на последней студии - работает и определяются прекрасно и по флагу и по портам .

Основная мысль была - что при симуляции можно пользоваться флагом. (Цель - отладить программу, а не ткнуть носом atmel в их баги?) Возможно, в последних версиях студии всё уже исправлено. Хотя вот не всё, судя по Вашему последнему посту.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение May 22 2008, 10:43
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(gte @ May 17 2008, 23:58) *
Проблема с симуляцией ATMega88.
Часть пинов порта С на ввод. Включена подтяжка, наложена маска.
DDRC = 0x07;
PORTC = 0x38;
PCMSK1 = 0x28;
Ставлю брекпоинт на программу обработки прерываний. В ней пусто или нет, не играет роли.
Выставляю 1 на PC3. Зацикливается на прерывании.
Пробую на порту B при тех же условиях - все нормально.
Кто встречался с такой проблемой?



Ответ из Европейского центра ATmel в кратце звучит так :

К сожелению они признают, что после проверки test кода ( я им отсылал) данная проблема существует и соглашаются , что глючит STUDIO . Благодарят нас за наше сообщение и в данный момент нам не могут помочь, но переслали всё куда-то штаб квартиру.

Я так думаю , что глюк уберут , только в новом релиз


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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