Отговори на тема  [ 3 мнения ] 
CCS #use delay проблем s 16F721 
Автор Съобщение
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение CCS #use delay проблем s 16F721
Не че не съм на път да си напиша мой delay но рядко изобщо използвам delay и не съм се занимавал. Та как ли не го конфигурирах това но не може да докарам да генерира закъснение дори близо до това което се очаква. Подозирам проблема е свързан с реазлизация на клока при конкретният контролер, има 500 khz вътрешен генератор, PLL х32 и постскалер, съответно варианта е или 500 khz и съответно надолу до 62.5 или 16, 8 , 4,2 Mhz. PLL-а се управлява от конфигурационната дума и там нещата изглеждат наред. Реално и честотата си е наред, пускам го на 2 Mhz, и поне последно като гледах със скопа на толкова си и работи.
Проблема обаче е в калкулацията на времената за delay_ms, изчислява ги за всичко друго но не и за 2 Mhz :
#use delay(internal=2 Mhz, RESTART_WDT) генерира делей като за'8 Mhz' 16 Mhz клок
#use delay(internal = 500khz, clock=2000000, RESTART_WDT) това също работи като за '8Mhz' 16 Mhzклок
Опитах и всякакви други комбинации но резултата е един и същ. 'Сега защо генерира за 8Mhz не ми е ясно, след като изхода на PLL е 16'. Опитах да го излъжа, че работи на 500 khz но плаче когато сетвам осцилатора на 2 и 8 mhz. Сетването може да го направя и с моя функция, но пък задам ли му 500 khz бута и конфигурационната дума. Реално дори като го направи на 500 khz, delayпродължава да го смята на 8 Mhz база и от 4 пъти по-дълго става 20 пъти по-дълго :)
Не, че толкова ми пречи, но дразни, иначе има 1000 workarounda, ама защо не се конфигурира както си трябва. Някой борил ли го е това?

едит .. нещо ми куца умножението, 2х8 е 16, та за 16 Mhz клок се сетва, това в апострофите е старото ми писание, ама да не го трия ако някой вече го е чел.


Съб Юни 04, 2022 7:09 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: CCS #use delay проблем s 16F721
p.s. сега като гледам какво генерира като asm, доколкото броя цикъла за 1 ms трае общо 3850 такта, вътрешния е BF или 191 х4 което е 764 и във външния цикъл са още 6 инструкции или общо 5 х 770. Грубо това прави 1 мс при 16 Mhz, което пък няма нищо общо с това което виждам в анализатора, там 100 ms ги генерира като 800 ms, т.е. ... а да бе, аз горе съм писал глупости, 8 пъти разлика, т.е. не 8 а 16 Mhz ...

00F7: MOVLW AA
00F8: MOVWF 04
00F9: BCF 03.7
00FA: MOVF 00,W
00FB: BTFSC 03.2
00FC: GOTO 10E
00FD: MOVLW 05
00FE: MOVWF 78
00FF: MOVLW BF
0100: MOVWF 77
0101: CLRWDT
0102: DECFSZ 77,F
0103: GOTO 101
0104: DECFSZ 78,F
0105: GOTO 0FF
0106: MOVLW 2E
0107: MOVWF 77
0108: DECFSZ 77,F
0109: GOTO 108
010A: NOP
010B: CLRWDT
010C: DECFSZ 00,F
010D: GOTO 0FD
010E: RETURN


Съб Юни 04, 2022 7:25 pm
Профил
Online
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение Re: CCS #use delay проблем s 16F721
Така май го излъгах :
#use delay(internal=16Mhz, clock=2000000, RESTART_WDT)
Така написано генерира правилен код за 1 мс :
00F7: MOVLW AA
00F8: MOVWF 04
00F9: BCF 03.7
00FA: MOVF 00,W
00FB: BTFSC 03.2
00FC: GOTO 104
00FD: MOVLW A5
00FE: MOVWF 77
00FF: DECFSZ 77,F
0100: GOTO 0FF
0101: CLRWDT
0102: DECFSZ 00,F
0103: GOTO 0FD
0104: RETURN

Никъде не намирам точно описание как тия параметри работят, ама не ми се и рови да търся, явно за чипове с PLL това е начина, въпреки, че чета по форума на CCS че и с такова сетване има проблеми, но като гледам са тия в които PLL може да го ръчкаш софтуерно а не е в конфигурационната дума.


Съб Юни 04, 2022 8:24 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 3 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: Google [Bot] и 7 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни