roboforum.ru

Технический форум по робототехнике.

 

Си для МК - общие вопросы

Раздел создан специально для людей которым интересна робототехника, но в силу разных причин они не знают с чего начать.
Задавайте ваши вопросы, какими бы простыми они не казались, постоянные посетители форума постараются ответить на них по мере своих сил.
Робот своими руками. Самодельный робот.

Си для МК - общие вопросы

Сообщение loid » 22 мар 2008, 13:47

"Си для микроконтроллеров" это страница 5 в кратком курсе - Микроконтроллеры
AVR и PIC начинающим - теория, примеры, программы. < avr123.nm.ru >

Люди, подскажите как организовывать массивы и с чем их есть на СИ ?

Например на Бэсике: Bascom AVR и Bascom-8051
dim a(10) - это указывает размер массива
data 4,5,7,9,5,4,3,4,6,2 - сюда наполняем массив

print a(3) - так вытаскиваем из массива, например вывод на экран

как другими словами на СИ это написать.
Аватара пользователя
loid
 
Сообщения: 349
Зарегистрирован: 16 окт 2007, 11:57
Откуда: Минycинck

Re: Общие вопросы по программированию СИ

Сообщение rig » 22 мар 2008, 14:15

Сам когдато искал и в курсе и в хелпах. Все примеры работают в CodeVisionAVR :

структура
Код: Выделить всёРазвернуть
struct  struct_memo_termo 
      {unsigned char N_datchik;
       unsigned char name[max_len_name];
       unsigned char radio;
       unsigned char aktiv;
       int T;
       int T_old;
       unsigned char T_obnovlenia;
       int T_alarm;
       unsigned char Alarm;
       unsigned char Poz_LCD;          
      }memo_termo[10];

обращение к структуре
memo_termo[1].T
memo_termo[2].T_alarm
memo_termo[9].Poz_LCD

Код: Выделить всёРазвернуть
flash struct  memo_flash {
          signed char   time;
          signed char   light;
          signed char   step[4];   
         }data_memo_flash[N_effekt]=
         {
         {2,(max-1)*1,{ T__max*1, T__max*0.05, T__max*0, T__max*0.2}},
         {6,(max-1)*1,{ T__max*2, T__max*0.2 , T__max*1, T__max*0.1}},
         {4,(max-1)*1,{ T__max*3, T__max*0.1 , T__max*2, T__max*0.1}},
         {5,(max-1)*1,{ T__max*4, T__max*0.2 , T__max*3, T__max*0.1}},
         {6,(max-1)*1,{ T__max*5, T__max*0.2 , T__max*4, T__max*0.1}},
         {3,(max-1)*1,{ T__max*6, T__max*0.05, T__max*5, T__max*0.2}},
         {5,(max-1)*1,{ T__max*7, T__max*0.2 , T__max*6, T__max*0.1}},
         {6,(max-1)*1,{ T__max*8, T__max*0.2 , T__max*7, T__max*0.1}},
         {4,(max-1)*1,{ T__max*9, T__max*0.1 , T__max*8, T__max*0.1}},
         {3,(max-1)*1,{ T__max*10,T__max*0.2 , T__max*9, T__max*0.2}}
         };

обращение

data_memo_flash[х].light
data_memo_flash[ x ].step[у]
data_memo_flash[ x ].time

Код: Выделить всёРазвернуть
описание новой структуры данных
typedef eeprom struct  {
         unsigned char   name[len_name];         
         unsigned char rom_code[len_rom_code];
         int t;
         int t_alarm_1;
         unsigned char type_alarm;
         } eprom_structure_store;

объявление структуры в другом месте программы
eeprom eprom_structure_store eprom_store_data[MAX_DEVICES];

массивы:

signed char pre_light[20]={0,1,2,3,4,5,8,10,12,14,16,18,20,22,24,26,30,32,36,39 };

обращение
pre_light[х]

Код: Выделить всёРазвернуть
unsigned char KeyArray[8][8]={{255, 18,255, 22,  7,  1, 14, 16},\  // ~| 
                              { 18,255, 23, 21,  8,  2, 13, 17},\
                              {255, 23,255, 20,  9,  3, 12, 19},\
                              { 22, 21, 20,255, 10,  4, 11,255},\
                              {  7,  8,  9, 10,255,  5,255,  6},\
                              {  1,  2,  3,  4,  5,255,255,  0},\
                              { 14, 13, 12, 11,255,255,255, 18},\
                              { 16, 17, 19,255,  6,  0, 15,255}};

обращение
KeyArray[0][0]
Последний раз редактировалось rig 22 мар 2008, 18:12, всего редактировалось 2 раз(а).
Аватара пользователя
rig
 
Сообщения: 1437
Зарегистрирован: 03 авг 2007, 19:43
Откуда: Екатеринбург
прог. языки: Си, асм со словарем

Re: Си для МК - общие вопросы

Сообщение avr123.nm.ru » 22 мар 2008, 14:27

Спасибо за подробный ответ !

Самая точная информация находится в Хелпе в документации и в примерах к используемому компилятору.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8


Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Mail.ru counter