Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Непонятки с компилятором CCS PICC

Отправлено fmssp.ere 28 апреля 2007 г. 23:20


Не получается получить прерывания от TMR0 через 60uS :((((
Инициализация таймера в main:
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1)

#int_timer0
void Timer0_ISR(VOID)
{
set_timer0(232);
++TxCount;
}

Подбором числа, загружаемого в таймер, смог получить только 64uS
Дальнейшее увеличение приводит только к увеличению периода -одно прерывание еще не закончилось,а уже воникло следующее...

Смотрю на ассемблерный код сгенерированный компилятором и вижу:
вместо 4-5 команд по сохранению W,F, STATUS, последовательность из
!!! 54 команд:

0004: BTFSC 03.5
0005: GOTO 00A
0006: MOVWF 11
0007: SWAPF 03,W
0008: MOVWF 12
0009: GOTO 00F
000A: BCF 03.5
000B: MOVWF 11
000C: SWAPF 03,W
000D: MOVWF 12
000E: BSF 12.1
000F: MOVF 0A,W
0010: MOVWF 19
0011: CLRF 0A
0012: BCF 03.7
0013: SWAPF 11,F
0014: MOVF 04,W
0015: MOVWF 13
0016: MOVF 0C,W
0017: MOVWF 14
0018: MOVF 0D,W
0019: MOVWF 15
001A: MOVF 0E,W
001B: MOVWF 16
001C: MOVF 0F,W
001D: MOVWF 17
001E: MOVF 10,W
001F: MOVWF 18
0020: BCF 03.5
0021: BTFSS 0B.5
0022: GOTO 025
0023: BTFSC 0B.2
0024: GOTO 03A
0025: MOVF 13,W
0026: MOVWF 04
0027: MOVF 14,W
0028: MOVWF 0C
0029: MOVF 15,W
002A: MOVWF 0D
002B: MOVF 16,W
002C: MOVWF 0E
002D: MOVF 17,W
002E: MOVWF 0F
002F: MOVF 18,W
0030: MOVWF 10
0031: MOVF 19,W
0032: MOVWF 0A
0033: SWAPF 12,W
0034: MOVWF 03
0035: BCF 03.5
0036: SWAPF 11,W
0037: BTFSC 12.1
0038: BSF 03.5
0039: RETFIE

И зачем все это??? Можно ли в настройках компилятора как то уменьшить
размер этой процедуры или сделать самому ассемблерную вставку для обработки прерывания?

Заранее благодарю!

Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
вычтите из двух единицу:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru