Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/49: Рейтинг темы: голосов - 49, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 146

dsPIC33E проблема с массивами

07.01.2014, 15:37. Показов 9270. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем. Такая проблема. Пытаюсь просто объявить массив unsykned int[1000] и МК dsPIC33EP256MU810 перестаёт работать: нет никаких изменений на RE7. ROM у этого МК 28кб, на массив надо 2кб, так что памяти хватает. Если закомментировать unsykned int array[1000], то всё работает. Эксперементально выяснил, что максимальный размер массива = 177 элементов, при котором МК ещё работает. Компилятор XC16 v1.20 free-version (на сайте микрочипа пишут, что для бесплатной версии нет никаких ограничений по использованию памяти). В чем может быть проблема?

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
unsykned int array[1000];
 
int main(void)
{
// настраиваем тактирование
CLKDIV = 0b0000000000000011; // N1 = 5 (PLLPRE = 3), N2 = 2 (PLLPOST = 0)
PLLFBD = 0b0000000000100110; // M = 40 (PLLDIV = 38)
// итого: Foss = 20 * (40/(5*2)) = 80 MHz
// запрещаем вложенные прерывания
INTCON1bits.NSTDIS = 1;
// выключаем watchdog
RCONbits.SWDTEN = 0;
// ждём запуска PLL
while(OSCCONbits.LOCK != 1) {};
 
// Настраиваем ногу RE7 как выход и будем использовать её для отладки
ANSELEbits.ANSE7 = 0;
TRISEbits.TRISE7 = 0;
Nop();
PORTEbits.RE7 = 0;
 
for(;;)
{
asm("BTG PORTE, #7");
}
 
return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.01.2014, 15:37
Ответы с готовыми решениями:

Проблема с настройкой генератора dsPIC33E
Здравствуйте. Осваиваю dsPIC33EP128MC504. Первым делом нужно настроить генератор. Генератор работает от кварца на 8МГц. По даташиту...

Проблема с массивами.
Здравствуйте. Нужна помощь. Есть несколько массивов, при определенных условиях нужно в одну переменную запихивать один из етих массивов....

Проблема с массивами
Помогите, пожалуйста решить задачу. В заданной матрице продублировать строку матрицы, содержащую ее максимальный элемент. ...

5
0 / 0 / 0
Регистрация: 15.02.2011
Сообщений: 176
07.01.2014, 17:03
Скорее всего компилятор не может правильно разместить массив в памяти. Похожий косяк вчера у меня был(Pic24fj256gb206 96К ОЗУ), решил:
Project ->Build options -> Project -> MPLOBS30 -> Memory Model -> Large Data
Но компилятор как видно C30 и обычный MPLAB IDE (не X). Посмотрите, возможно такая же настройка есть и у вас.
Честно говоря не разбирался что это, попробовал включить - проект собрался, когда раньше была ошибка
usb_divice.o: Link Error: Could not allocate section _034a154052cd39f2, size = 48 bytes, attributes = bss near
Link Error: Could not allocate data memory
появившаяся после увеличения размера буфера (4х буферов с 64 до 128 байт)
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 146
07.01.2014, 18:51
Код компилируется без ошибок и предупреждений. Data memory model = large для кода из первого поста помогло. Но теперь перехожу к реальной программе, где нужен массив на 1000 элементов - там data memory model = large не помогает. В реальном проекте ROM использована только на 9% (2758 байт).
0
OVF
28.08.2014, 14:21
Цитата Сообщение от kryzzty
Код компилируется без ошибок и предупреждений. Data memory model = large для кода из первого поста помогло. Но теперь перехожу к реальной программе, где нужен массив на 1000 элементов - там data memory model = large не помогает. В реальном проекте ROM использована только на 9% (2758 байт).
а 2758 байт разве не нормально?
(int=2 байта)*1000 = 2000 байт - Ваш массив, ну и плюс остальное. и еще - пока к массиву нет обращений, оптимизатор вправе его выкинуть. попробуйте поставить volatile перед объявлением.
0 / 0 / 0
Регистрация: 07.03.2010
Сообщений: 918
28.08.2014, 15:48
А может быть вся эта херь объявляется на стеке?
если объявить что-то вроде:
Code
1
2
3
4
if(i=0)
{
int a[1000];
}
то стеку и пиздец, ибо этот массив компилятор считает временным, и размещает в оном.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 146
05.09.2014, 11:54
Проблема была решена. Признаюсь, что я просто биты конфигурации не правильно настроил. Что именно не так было уже не помню.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.09.2014, 11:54
Помогаю со студенческими работами здесь

Проблема с массивами.
Есть массивы (1 то 16), (0 то 15) (1 от 16) = (0 то 15) даёт плохой результат - 0 элемент не пишется в 1 и так далее. Так и должно быть?

Проблема с массивами
Приветствую всех, ныне находящихся на форуме Прошу помочь мне с массивами using System; using System.Collections.Generic; using...

Проблема с массивами
Добрый день, возникла такая проблема: ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size...

Проблема с массивами
Есть Class test в классе есть массив var $arrayData = array(); но случайно вывел другой массив ( $this->$data ) которого нету, а...

проблема с массивами
доброго времени суток, в коде который представлен ниже, массивы min_values и max_values, почему-то имеют одни и те же значения, хотя вроди...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru