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

 
 
> Си указатель на таблицу, Как пристегнуть массив?
Alhen
сообщение Feb 2 2006, 18:19
Сообщение #1


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

Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516



Все решено перехожу на Си!
Только вот незадача, первая же простенькая практическая задача
для AVR контроллера поставила в тупик.
Суть программы:
- в памяти программ размещается таблица или массив;
- берем по очереди байт из массива и выкидываем в коммуникационный порт.

Массив находится в пристегиваемом файле и я не понимаю как указать
какому либо поинтеру на начало таблицы.
На ассемблере все получается достаточно гармонично:
Код
    ldi zh,high(Transmit_Buff*2); Load Z-pointer
    ldi zl,low(Transmit_Buff*2); to the beginning of Receive_Buff

Transmit_Loop:

USART_Transmit:
; Wait for empty transmit buffer
    sbis UCSRA,UDRE
    rjmp USART_Transmit
; Put data  into buffer, sends the data
    lpm  Data_IN, Z+
    out UDR, Data_IN

        ldi  TempReg,high(end_of_file*2); Check if we got high end_of_file
        cp   TempReg,zh        ; Compare
        breq got_high_end_of_file; If equal then check the Low part
            rjmp go_further:

got_high_end_of_file:
        ldi  TempReg,low(end_of_file*2); Check if we got low end_of_file
        cp   TempReg,zl        ; Compare
        breq got_low_end_of_file; If equal then reload Z-pointer
            rjmp go_further:

got_low_end_of_file:
        ldi zh,high(Transmit_Buff*2); Load Z-pointer
        ldi zl,low(Transmit_Buff*2); to the beginning of Receive_Buff

go_further:
rjmp Transmit_Loop

Transmit_Buff:

.include "AIS_LOG.txt"

end_of_file:
nop

Реализация подбной программы на Си AVR для меня загадка.
Тем более что я нашел подходящую конструкцию на VisualDSP,
Код
complex_fract16 in[VEC_SIZE] =
{
    #include "in.dat"
};

но в CVAVR такое не проходит!!!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alhen
сообщение Feb 3 2006, 04:52
Сообщение #2


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

Группа: Свой
Сообщений: 161
Регистрация: 17-08-04
Из: Караганда
Пользователь №: 516



Цитата
__flash unsigned char TABL[10]={1,2,3,4,5,6,7,8,9,10};//определение таблицы во flash


Не могу я набирать массив ручками, там пару тысяч байт, поэтому храню его в отдельном
файле в текстовом формате и должен пристегнуть его.
Например,

#include "tabl.dat";

вот теперь как определить его в виде TABL[length_of_table] ?
или определить начальный адрес размещения данных, а потом передать это значение указателю?
Go to the top of the page
 
+Quote Post
Old1
сообщение Feb 3 2006, 07:46
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Цитата(Alhen @ Feb 3 2006, 08:52) *
Не могу я набирать массив ручками, там пару тысяч байт, поэтому храню его в отдельном
файле в текстовом формате и должен пристегнуть его.

По подробнее плиз, что из себя файл с массивом представляет, и как вы его создаете?
Кстати, я в таких случаях тоже не набираю ручками. Файл (с определением массива) генерю при помощи простенькой проги написанной на DELPHI (каждый раз пишу под задачу, делать универсальную лень), там (и не только там) это делается элементарно...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alhen   Си указатель на таблицу   Feb 2 2006, 18:19
- - beer_warrior   Кодstruct { volatile BYTE mode; volatile WORD ...   Feb 2 2006, 18:56
- - Old1   Цитата(Alhen @ Feb 2 2006, 22:19) Массив ...   Feb 2 2006, 19:43
|- - vet   Цитата(Alhen @ Feb 3 2006, 07:52) Цитата ...   Feb 3 2006, 06:45
- - BVU   Таблицу всегда можно представить массивом, либо ст...   Feb 3 2006, 08:05
- - Nixon   Я делал вот так: в файле "data.txt" : К...   Feb 3 2006, 08:30
- - AndyBig   А еще в IAR можно пристегнуть любой файл как бинар...   Feb 3 2006, 10:07
- - k0t   Проще и удобнее всего подключение файла делать так...   Feb 3 2006, 13:19
|- - Old1   Цитата(k0t @ Feb 3 2006, 17:19) Проще и у...   Feb 3 2006, 18:46
|- - vet   Цитата(Old1 @ Feb 3 2006, 21:46) Цитата(k...   Feb 3 2006, 21:02
- - Alhen   2Nixon Попробывал я обыграть макрос и в CodeVision...   Feb 4 2006, 06:00
|- - vet   Цитата(Alhen @ Feb 4 2006, 09:00) Уже виж...   Feb 4 2006, 12:42
- - k0t   Цитата(Old1 @ Feb 3 2006, 21:46) Цитата(k...   Feb 4 2006, 12:30
- - Old1   2 k0t & vet Спасибо, но, я уже сам понял, что ...   Feb 4 2006, 20:12
- - k0t   Это-ж в РУЧНУЮ делать прийдется. А прог, которые и...   Feb 6 2006, 06:55
- - Old1   Цитата(k0t @ Feb 6 2006, 09:55) Это-ж в Р...   Feb 6 2006, 18:13


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

 


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


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