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

 
 
> IAR 3.10 долго пишит в еепром, 25 мсек 4 Байта
arttab
сообщение Nov 2 2006, 07:56
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



не понял почему так получается.
пишу из одного масива в озу в другой мисив в еепром. оба unsigned char
компилятор использует __eeput16_8 (почему не __eeput8_8 не понял).
Мега8 на 8МГц. должно быть не более 1 мсек на байт
это если пишу в цикле:
while (i)
{*(ub) = *(uc);
uc++;
ub++;
i--;}


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
arttab
сообщение Nov 2 2006, 08:19
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 432
Регистрация: 7-12-04
Из: Новосибирск
Пользователь №: 1 371



Блин, по даташиту 8,5 мсек. а один "байт быстропишится" так как в буфер. а так (4-1)*8,5мсек= 25 мсек. Буфер есть на 1 байт.
Понял.

Вопрос только почуму компилятор использует __eeput16_8, почему не __eeput8_8


--------------------
OrCAD, Altium,IAR, AVR....
Go to the top of the page
 
+Quote Post
prottoss
сообщение Nov 2 2006, 08:46
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(arttab @ Nov 2 2006, 15:19) *
Блин, по даташиту 8,5 мсек. а один "байт быстропишится" так как в буфер. а так (4-1)*8,5мсек= 25 мсек. Буфер есть на 1 байт.
Понял.
Вопрос только почуму компилятор использует __eeput16_8, почему не __eeput8_8
Скомпилил только что вот такой текст:

Код
UCHAR sram[32];
UCHAR __eeprom eeprm[32];

__C_task main(void)
{
   UCHAR *sramp = sram;
    UCHAR __eeprom *eeprmp = eeprm;
   UCHAR i = 32;

    while(i--)
               *eeprmp++ = *sramp++;

}
То же самое на асме:

Код


  26              while(i--)
     27                *eeprmp++ = *sramp++;
   \                     ??main_1:
   \   0000000C   8100               LD      R16, Z
   \   0000000E   01A9               MOVW    R21:R20, R19:R18
   \   00000010   ........           CALL    __eeput8_16
   \   00000014   9631               ADIW    R31:R30, 1
   \   00000016   5F2F               SUBI    R18, 255
   \   00000018   4F3F               SBCI    R19, 255
     28              
   \                     ??main_0:
   \   0000001A   2F01               MOV     R16, R17
   \   0000001C   2F10               MOV     R17, R16
   \   0000001E   951A               DEC     R17
   \   00000020   2300               TST     R16
   \   00000022   F7A1               BRNE    ??main_1


У меня ИАР версии 4.10А... А что Вас смущает? Не нравится местная функция, напишите свою. Делов то там не много)


--------------------
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:21
Рейтинг@Mail.ru


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