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

 
 
> IAR/PIC18 - глюк у меня или у него?, Первые ответы на тс в пользу иара. ;-)
Velund
сообщение Apr 14 2005, 20:48
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Пытаюсь наплодить кое что в иаре под 18F458 и натолкнулся на затык один

В хедере CANCON описан следующим образом:
__SFR_BITS(__nonbanked,CANCON,0xF6F,,WIN0,WIN1,WIN2,ABAT,REQOP0,REQOP1,REQOP2)

Подпрограммка

void SetCANMode( unsigned char Mode )
{
CANCON = Mode;
while ((CANSTAT & 0xE0) != Mode);
}

компилится так:

149: void SetCANMode( unsigned char Mode )
150: {
151: CANCON = Mode;
003FE6 C200 MOVFF 0x200, 0x6f <<<<<< засада тут
003FE8 F06F NOP
152: while ((CANSTAT & 0xE0) != Mode);
003FEA 506E MOVF 0xf6e, W, ACCESS
003FEC 0BE0 ANDLW 0xe0
003FEE 0102 MOVLB 0x2
003FF0 1900 XORWF 0, W, BANKED
003FF2 E1FB BNZ 0x3fea
153: }
003FF4 0012 RETURN 0

во всех вариантах оптимизации вместо адреса 0xF6F она, зараза, пишет в 0x6F. Как
результат - мы виснем тут навеки.

Это мой первый опыт с иаром пичным, посему я в раздумьях, то ли букварь читать, то
ли иар на другую версию попробовать махнуть, то ли волосья выщипывать... ;-)...

Что скажут гуру?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 1)
Velund
сообщение Apr 14 2005, 21:04
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



Становится все чудесатее и чудесатее. Запустил build из среды иаровской (выше был тот же компилятор но прикрученный к MPLAB). Вот кусок листинга...

Пошел рыться в опциях в мплаб...

149 void SetCANMode( unsigned char Mode )
\ SetCANMode:
\ 000000 REQUIRE `?CLPIC18_2_12_L00`
150 {
\ 000000 ; Function Enter
151 CANCON = Mode;
\ 000000 010E MOVLW 1
\ 000002 ....6FFF MOVFF PLUSW2,0xF6F
152 while ((CANSTAT & 0xE0) != Mode);
\ `??SetCANMode_0`:
\ 000006 6E50 MOVF 0xF6E,0,0
\ 000008 E00B ANDLW 224
\ 00000A .... MOVWF ?A0,0
\ 00000C 010E MOVLW 1
\ 00000E .... MOVF PLUSW2,0,0
\ 000010 .... XORWF ?A0,0,0
\ 000012 ; Cond:NE
\ 000012 F9E1 BNZ `??SeтCANMode_0`
153 }
\ 000014 .... MOVWF PREINC2,0
\ 000016 1200 RETURN 0
Go to the top of the page
 
+Quote Post

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

 


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


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