|
|
  |
IAR 3.10 долго пишит в еепром, 25 мсек 4 Байта |
|
|
|
Nov 2 2006, 08:46
|

Гуру
     
Группа: Свой
Сообщений: 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А... А что Вас смущает? Не нравится местная функция, напишите свою. Делов то там не много)
--------------------
|
|
|
|
|
Nov 2 2006, 13:16
|

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

|
Цитата(IgorKossak @ Nov 2 2006, 19:25)  Действительно странно. В версиях 3.20d и 4.20a всё нормально. Обратите внимание: в кодах, что приводил я выше не __eeput16_8 , а __eeput8_16 , для которой: Код ;---------------------------------------------------------- ; __eeput8_16 ; ; [b]To write one char to the internal eeprom using 16-bit addresses[/b] ; ; Inputs: ; P0 - The char to write to the eeprom. ; Q0...Q1 - The address of the char to write ; ; Outputs: ; Q0...Q1 - The address of the next char ; ; SIZE: 8 bytes
RSEG CODE:CODE:NOROOT(1) __eeput8_16: IN T0,SREG RCALL ?eewait OUT EEDR,P0 RJMP ?eeput16 Из фала avr\src\lib\eeprom.s90... Текст компилился для М16
--------------------
|
|
|
|
|
Nov 3 2006, 03:39
|

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

|
unsigned char __eeprom* ub; unsigned char* uc; unsigned char i=4; Использую подключенй к проекту eeprom.s90
Прикрепленные файлы
eeprom.zip ( 3.59 килобайт )
Кол-во скачиваний: 55
--------------------
OrCAD, Altium,IAR, AVR....
|
|
|
|
|
Nov 3 2006, 07:41
|

Шаман
     
Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221

|
Цитата(arttab @ Nov 3 2006, 05:39)  unsigned char __eeprom* ub; unsigned char* uc; unsigned char i=4; Тогда всё ещё более странно. Цитата(arttab @ Nov 3 2006, 05:39)  Использую подключенй к проекту eeprom.s90 Не смотрел в архиве, но подключать eeprom.s90 к проекту нужно только если Вы его правите под свои нужды (скажем, для поддержки ОС). В предкомпилированном виде этот файл уже присутствует во всех библиотеках. Ба! Так это ж мой файл! Не думал, что станет популярным. Кстати, arttab, почему бы Вам не перейти на версию поновее. Последняя наиболее стабильная из троек была 3.20D. 4.20A тоже ничего.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|