Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 27.07.2011, 07:58  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Что то не могу сообразить,почему не могу залить массив больше 250 8-битных чисел в ROM pic16f628a,ведь еще половина места свободного.Flash же не имеет банков в этом микроконтроллере,как RAM.
Пробовал и #org,так выделяет он,а туда не пишет массив.

const char table[250] = {0x00,0x00,0x00,0x04,0x08,0x1f,0x00,0x00,0x00,0x00 ,
0x00,0x00,0x00,0x02,0x02,0xfe,0x02,0x02,0x00,0x00, // 1-0
Миниатюры:
Нажмите на изображение для увеличения
Название: css.png
Просмотров: 78
Размер:	35.0 Кб
ID:	24182   Нажмите на изображение для увеличения
Название: CSS2.png
Просмотров: 70
Размер:	18.4 Кб
ID:	24183   Нажмите на изображение для увеличения
Название: CSS3.png
Просмотров: 47
Размер:	3.3 Кб
ID:	24184  

Вложения:
Тип файла: rar test_lcd_C55_CSS.rar (19.8 Кб, 75 просмотров)
Реклама:
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 27.07.2011 в 08:01.
CERGEI1982 вне форума  
Непрочитано 27.07.2011, 09:19  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Посмотрите как организовано хранение массива в ассемблерном коде. Насколько помню, у 16Ф628 нет индексного регистра для работы с памятью программ и возможно массив пишется набором retlw. Соответственно больше одной страницы делать не хочет
__________________
misterdi<@>i.ua
MisterDi вне форума  
Сказали "Спасибо" MisterDi
CERGEI1982 (27.07.2011)
Непрочитано 27.07.2011, 10:41  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от CERGEI1982 Посмотреть сообщение
Flash же не имеет банков в этом микроконтроллере,как RAM.
Зато он имеет блочную организацию (по 256 байт); а читать данные из флеши можно только через табличный retlw (с addlw PCL). Максимальный размер массива в твоем случае 256 минус несколько инструкций на подготовку PCL.

Вообще, некоторые компиляторы умеют делать для 628-го таблицы больше 256, подготавливая еще и PCLATH (в частности хайтек). В CCS'е много всяких настроек и директив, посмотри, возможно там есть какая-нибудь #use bigtables или типа того.
testerplus вне форума  
Сказали "Спасибо" testerplus
CERGEI1982 (27.07.2011)
Непрочитано 27.07.2011, 11:36  
SergeyK
Временная регистрация
 
Регистрация: 02.01.2005
Адрес: Киев
Сообщений: 78
Сказал спасибо: 6
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
SergeyK на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от wasp Посмотреть сообщение
делаю конвертер на PIC16F887...Но иногда комп тоже может спросить. Его опрос принимает INT_RDA(). Так вот примерно 10% этих запросов теряются, потому как аппаратный УСАРТ подвисает. Видимо это происходит когда прерывания встречаются.
Я делал приставку к ПК, которая получает данные через аппаратных UART и выводит на дисплей. Вначале я сделал просто чтение символа и вывод на дисплей, но оказалось, что даже на скорости 9600 кбит/с иногда данные приходят быстрее, чем я успеваю все вывести и (или) обработать. Я сделал буфер на 32 байта и по прерыванию от приемника UART байт сразу сбрасывается в буфер. Помогло. Но очень изредка возникает ситуация, что буфер приемника переполняется (выставляется бит OERR) и приемник выключается (для включения приемника его нужно сбросить). Я пробовал заставить CCS сбрасывать бит ошибки и снова включать приемник в штатной функции, но у меня не получилось (#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bi ts=8,errors)). Изредка и мой буфер переполняется. Поэтому я контролирую биты переполнения и "вешаю" программу ("while(1);"). WDT перезагружает МК.

Последний раз редактировалось SergeyK; 27.07.2011 в 11:42.
SergeyK вне форума  
Непрочитано 27.07.2011, 12:26  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от MisterDi Посмотреть сообщение
Посмотрите как организовано хранение массива в ассемблерном коде. Насколько помню, у 16Ф628 нет индексного регистра для работы с памятью программ и возможно массив пишется набором retlw. Соответственно больше одной страницы делать не хочет
Да наверно,хотя посмотрел ассем объявлений массива вообще нет.Выделяется динамически при компиляции наверно память.Посмотрел директивы толком ничего не нашел.Думаю попробывать структуру,а в ней наборы массивов не превышающих 256.
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 28.07.2011, 04:39  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Со структурой тож не вышло,зато помогло с #rom.Но вот теперь не могу считать из памяти программ,не работает read_program_memory().Для нее не надо никаких библиотек,что я делаю не так?
Миниатюры:
Нажмите на изображение для увеличения
Название: CSS1.png
Просмотров: 66
Размер:	24.5 Кб
ID:	24246   Нажмите на изображение для увеличения
Название: CSS2.png
Просмотров: 63
Размер:	6.6 Кб
ID:	24247   Нажмите на изображение для увеличения
Название: CSS3.png
Просмотров: 56
Размер:	24.1 Кб
ID:	24248  

__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 28.07.2011, 09:07  
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

в Help-e написано
Цитата:
Availability: Only devices that allow reads from program memory.
Насколько помню, у 16f628 нет комманд чтения данных из памяти программ.
Как вариант: для доступа к большому массиву разбить его на группы по 250 элементов и для каждой группы вызывать отдельную функцию.
как-то так:
Код:
char GetData(number)
{
if (number ‹ 250) return data1[number];
if (number ‹ 500) return data2[number-250];
if (number ‹ 1000) return data3[number-500];
}
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 28.07.2011, 12:19  
CERGEI1982
Почётный гражданин KAZUS.RU
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от MisterDi Посмотреть сообщение
в Help-e написано

Насколько помню, у 16f628 нет комманд чтения данных из памяти программ.
Точно,сплю просто на ходу,с ночи.Спасибо
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 29.08.2011, 19:09  
Eddy71
Почётный гражданин KAZUS.RU
 
Аватар для Eddy71
 
Регистрация: 22.02.2008
Адрес: Ukraine, рядом с Полтавой
Сообщений: 9,771
Сказал спасибо: 5,556
Сказали Спасибо 25,326 раз(а) в 5,690 сообщении(ях)
Eddy71 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Слегка покопался в топике, но не увидел, уж не пинайте если было..

Решил обновить частотомер, писаный 15 лет назад на асме.. И споткнулся на простейшем: понадобилось переменную в int32 перекодировать в BCD. В родных примерах народ не заморачивается: хоть на порт, хоть на экран выводят через printf и компилятор сам вставляет что нужно. А мне захотелось поиграть с разным представлением цифр на экране, а как в упор это сделать не нашел. Вставку на асме пихать как-то неэстетично что ли..
Eddy71 вне форума  
Непрочитано 29.08.2011, 19:26  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от Eddy71 Посмотреть сообщение
переменную в int32 перекодировать в BCD.
Может все таки ITOA ?
http://www.microchip.su/showthread.p...ht=itoa&page=3

Если все таки BCD нужен - просто не прибавлять 0x30 ('0').
Вместо
Цитата:
atemp='0';
вписать
Цитата:
atemp=0;
Ну и расширить до int32 ...
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 29.08.2011 в 19:31.
dosikus вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
i2c+ccs pic Gladkih Микроконтроллеры, АЦП, память и т.д 9 18.04.2016 22:17
PIC BASIC PRO Compiler 2.47 dosikus Proteus, KiCAD и другие ECAD 27 05.12.2009 05:48
изучение IAR AVR C compiler granel Микроконтроллеры, АЦП, память и т.д 0 10.10.2008 20:45
PIC C Compiler PCWH458 sergxxx Микроконтроллеры, АЦП, память и т.д 9 23.09.2008 18:25
Не включается дебаггер в CCS C Compiler BigMazzi Микроконтроллеры, АЦП, память и т.д 4 19.09.2008 13:34


Часовой пояс GMT +4, время: 22:32.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot