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

 
 
> ADuC7026 сильно тормозит, или я...
condor
сообщение Apr 23 2008, 23:19
Сообщение #1


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

Группа: Свой
Сообщений: 93
Регистрация: 18-06-05
Из: Kyiv, Ukraine
Пользователь №: 6 126



Попробовал непрерывно помахать ножкой на 7026 и получил меандр с периодом 12мкс. По прикидкам должно было получится на порядок быстрее.
Пробовал на таком коде. Тактирование от внутреннего генератора с PLL ~42МГц. Инвертирование ноги скомпилилось в 8 инструкций. Как они могут выполнятся за ~240 тактов?

Код
int main (void)
{
    PLLKEY1 = 0xAA;
    PLLCON = 0x21;
    PLLKEY2 = 0x55;
    
    POWKEY1 = 0x01;
    POWCON = 0;
    POWKEY2= 0xF4;

    GP1CON = 0x00000000;
    GP1DAT = 0x01000000;
    
    while(1)
        GP1DAT ^= 0x00010000;
}

Код
  GP1DAT ^= 0x00010000;
00080188  480A    LDR    R0, [PC,#0x028]
0008018A  490A    LDR    R1, [PC,#0x028]
0008018C  6809    LDR    R1, [R1, #0]
0008018E  2280    MOV    R2, #128
00080190  0252    LSL    R2, R2, #9
00080192  404A    EOR    R2, R1
00080194  6002    STR    R2, [R0, #0]
00080196  E7F7    B    0x080188

Прерывания таймера работают правильно, так что частота с PLL действительно 42МГц.

Кто-нибудь сталкивался с таким?
Go to the top of the page
 
+Quote Post



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

 


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


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