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

 
 
> выделение массива большого размера
george carpenter
сообщение Feb 19 2011, 12:51
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-12-10
Пользователь №: 61 831



Есть схемка не большая которая с каждым тактом генерирует 8192 раза нолик или единичку, эта схемка подключена к микроконтроллеру PIC18F4620, задача на МК запомнить эти 8192 бита(ну и потом передать по сети, эту задачу еще не решал). Вообщем пишу программку под МК и столкнулся с проблемой. Вот код:
Код
#include <htc.h>
#include "delay.c"
#define SIZE 8192

void main(void)
{
    int pMap[SIZE];
    //int *pMap = new int[SIZE];    такое в С++ у меня прокатывало
    TRISA = 0xff;
    TRISB = 0x00;
        
    for(int i=1;i<=SIZE;i++)
    {
        DelayMs(250);
        pMap[i]=RA0;
    }
}


У меня биты приходят на 0й пин порта А. Следовательно, я сделал массив размером 8192 и в цикле тупо его заполняю. Но проблема в том что когда компилирую получаю вот такое:
Error [1253] C:\Program Files\HI-TECH Software\PICC-18\PRO\9.65\sources\ftneg.c; 20. could not find space (16394 bytes) for auto/param block
Error [1253] C:\Program Files\HI-TECH Software\PICC-18\PRO\9.65\sources\ftneg.c; 20. could not find space (16394 bytes) for auto/param block

Не хватает места для выделения такого объема, как быть? И еще вопрос, фактически каждый элемент массива нолик или единичка, можно ли как-то битовый массив создать а не intовый?

Сообщение отредактировал george carpenter - Feb 19 2011, 12:53
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
george carpenter
сообщение Mar 4 2011, 21:54
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 36
Регистрация: 23-12-10
Пользователь №: 61 831



В принципе я решил всё проще, забыл оповестить sm.gif Поскольку как оказалось в этом контроллере банки памяти размером по 255 байт, то выделяю четко массив charов 1024 элемента, но в банке отличным от нулевого, то есть static bank2 char map[1024]; А потом с помощью написанных мною функций обращаюсь к каждому элементу массива и с помощью лог. операций работаю с битами, итого 1024*8=8192 бита в одном банке sm.gif

Кстати настройки MPLAB тут не причем!
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 4 2011, 22:01
Сообщение #3


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(george carpenter @ Mar 5 2011, 00:54) *
В принципе я решил всё проще, забыл оповестить


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

Сообщений в этой теме
- george carpenter   выделение массива большого размера   Feb 19 2011, 12:51
- - _Pasha   Кодchar pmap[SIZE/8]; for(int i=0;i...   Feb 19 2011, 13:28
- - george carpenter   С charами работа не пойдет , мне потом нужно буде...   Feb 19 2011, 13:36
|- - _Pasha   Цитата(george carpenter @ Feb 19 2011, 16...   Mar 4 2011, 11:55
- - george carpenter   Решил вот так, сразу писать в eeprom: Код#include ...   Feb 19 2011, 15:04
|- - Danis   Цитата(george carpenter @ Feb 19 2011, 18...   Feb 19 2011, 19:17
- - george carpenter   Воистину странные вещи, написал просто вот такие с...   Feb 19 2011, 18:31
- - george carpenter   Если открыть тут ссылку, что я дал, тот в отладчик...   Feb 19 2011, 19:29
- - george carpenter   Отладил те две программки. Вот этаКодvoid main...   Feb 20 2011, 11:24
- - sergeeff   С ума сойти, для хранения бита - целый байт! А...   Feb 20 2011, 11:43
- - george carpenter   Да нет не на месяц, просто нужно было хранить боль...   Feb 20 2011, 15:00
|- - sergeeff   Цитата(george carpenter @ Feb 20 2011, 18...   Feb 20 2011, 15:10
- - george carpenter   Ну не выход же тулить отдельно микросхему RAM Пот...   Feb 20 2011, 16:11
|- - sergeeff   Цитата(george carpenter @ Feb 20 2011, 19...   Feb 20 2011, 17:31
|- - Aqualion   Цитата(george carpenter @ Feb 20 2011, 19...   Mar 4 2011, 11:45
- - george carpenter   Ну просмотрел я настройки проекта там для стека и ...   Feb 20 2011, 17:59
|- - sergeeff   Цитата(george carpenter @ Feb 20 2011, 20...   Feb 20 2011, 18:46
|- - sergeeff   Цитата(george carpenter @ Feb 20 2011, 20...   Mar 4 2011, 18:24
- - george carpenter   Вы тоже не обижайтесь но уже догадался давно сдел...   Mar 5 2011, 07:47
- - sergeeff   Цитата(george carpenter @ Mar 5 2011, 10...   Mar 5 2011, 18:34


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 12:17
Рейтинг@Mail.ru


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