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

 
 
> AVRStudio, косяк какойто
viael
сообщение Sep 17 2006, 13:05
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 200
Регистрация: 10-04-06
Из: Украина,Запорожье
Пользователь №: 15 979



Пишу прогу в яре,отлаживаюсь в студии.Вот кусок кода на С
Код
    SETBIT(TIFR1,ICF1);//clear icf1 interrupt flag  
    TCNT1=0;            //clear timer1
    SETBIT(TIFR1,TOV1); //clear overflow interrpt flag for timer1

и дизасемблерный
Код
99:           SETBIT(TIFR1,ICF1);//clear icf1 interrupt flag  
+0000015A:   9AB5        SBI     0x16,5           Set bit in I/O register
100:          TCNT1=0;            //clear timer1
+0000015B:   D011        RCALL   PC+0x0012        Relative call subroutine
101:          SETBIT(TIFR1,TOV1); //clear overflow interrpt flag for timer1
+0000015C:   9AB0        SBI     0x16,0           Set bit in I/O register


Вопрос такой кманда SBI 0x16,5 должна сбросить 5-й бит в регистре TIFR1, а если верить симулятору AVRStudio то очищается весь регистр целиком.Это как понимать?Глюк симулятора?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
junoSynthesizer
сообщение Sep 17 2006, 20:27
Сообщение #2


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

Группа: Свой
Сообщений: 83
Регистрация: 25-11-05
Из: odessa
Пользователь №: 11 397



что то мне тут не понятно - тоже как новичку, работающему с иаром.


функция SETBIT(TIFR1,ICF1)


у меня это расписано в хэдэре так:

#define setbit(p,n) (p|=bit(n))
#define clrbit(p,n) (p&=~bit(n))
а у вас?


следовательно, мне не понятно почему:
если вам надо очитстить бит, вы делаете СЭТБИТ а не ЦЛРБИТ


--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 00:54
Рейтинг@Mail.ru


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