27.04.2015, 16:01
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Old_Monster
|
из-за одной, редко используемой(мной) функции менять компилятор - не серьёзно.
|
Если есть проблемы с указателями, то это уже серьёзно! Ффтопку такой компилятор!
|
|
|
|
27.04.2015, 18:23
|
|
Прописка
Регистрация: 14.02.2010
Адрес: СССР
Сообщений: 286
Сказал спасибо: 141
Сказали Спасибо 51 раз(а) в 43 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
STM32F0, оффтоп ну короче. Отписал в личку
|
|
|
|
04.05.2015, 21:31
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Здравствуйте, Уважаемые знатоки!
Задача писать в память значения датчиков и потом читать.
Вот , что нашёл в хелпе.
Код:
|
for(i=0x1000;i‹=0x1fff;i++) { value=read_adc();
write_program_memory(i, value, 2);
delay_ms(1000); } |
Вопросов больше, чем ответов.
Пишем в 18F452 - 8 байт. (i, value, 2) -А это как?
В своё время на АСМ проделовал эту операцию. Реально работающие до сих пор устройства.
Но вот с CCS C немного непонятно. Халявы не прошу.
-Мне бы кусочек кода, как правильно начать писать .
Или где посмотреть.
|
|
|
|
05.05.2015, 14:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Ну если Вы пишите два байта по адресу i, то может надо не i++, а i + =2 ?
Последний раз редактировалось Boba_spb; 05.05.2015 в 14:31.
|
|
|
|
05.05.2015, 15:26
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Old_Monster
|
dosikus, мне кажется, что из-за одной, редко используемой(мной) функции менять компилятор - не серьёзно. И да, я видел(и даже понял) приведённый Вами кусок, но не понял - зачем Вы его сюда. Поясните плиз.
|
Так уж и редкой? Правильно в топку эту срань.
По поводу const :
Там же четко написано :
для размещения const в ROM используется
__________________
Осторожно , злой кот
|
|
|
|
12.05.2015, 19:08
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Здравствуйте, Уважаемые знатоки!
Была у меня задача писать в память значения датчиков и потом читать.
Перерыл всю документацию. Вроде всё отлично.
Стирает по команде.
Массив из 8 констант пишет. Но переменные не получилось.
Просмотрел листинг мне очень не понравилось, идёт обращение к некоторым регистрам, POSTINC0 например, При просмотре регистров они не активны --------------------. дело, наверно , в .h-файле?
Пришлось делать АСМ подпрограмму. И все регистры прописать вручную.
Всё пишет отлично.
Это с CCS первый крупный глюк. Я ничего не перепутал?
|
|
|
|
13.05.2015, 19:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 11.06.2006
Адрес: 51° 46′ 0″ N, 55° 6′ 0″ E
Сообщений: 1,975
Сказал спасибо: 370
Сказали Спасибо 1,725 раз(а) в 706 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от Sergey_57
|
в память значения датчиков и потом читать.
|
О какой памяти речь?
|
|
|
|
13.05.2015, 21:46
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от welcome61
|
О какой памяти речь?
|
Памяти программ. Забыл уточнить.
EEPROM пишется без проблем.
Пишет в память блок 8 байт из нулей.
Смотрел листинг происходит обращение при подготовке блока записи
к регистрам которые не активны.
Америки не открою. Оказывается многие програмисты
дописывают .h -файлы и подпрограммы на АСМ. И не думают много.
Ну не работает функция , обойдёмся.
Код:
|
#define TBLPTR 0xff6
#define TBLPTRH 0xff7
#define TBLPTRU 0xff8
#define POSTINC0 0xfEE
#define TABLAT 0xff5
#define EECON1 0xfA6
#define EECON2 0xfA7
#define INTCON 0xff2
.................................................. .............................................
.................................................. ..............................................
//------Непосредственная запись------------------------
T_1=0x3165;
Buf_1=N_Rab_1;
if(Znak_1=1){Buf_2=1;}
else{Buf_2=0;}
if(Znak_2=1){Buf_2=Buf_2+2;}
Buf_3 = make8(T_1,1);//Старший байт
Buf_4 = make8(T_1,0);//Младший байт
Buf_5 = make8(T_2,1);//Старший байт
Buf_6 = make8(T_2,0);//Младший байт
Buf_7 = make8(U_1,1);//Старший байт
Buf_8 = make8(U_1,0);//Младший байт
Buf_9 = make8(I_1,1);//Старший байт
Buf_10 = make8(I_1,0);//Младший байт
//------ФОРМИРОВАНИЕ АДРЕСА ЗАПИСИ------
addres_1= (N_Rab_1)*8 + 0x4000;
addres_2= N_Rab_1 + 0x08;
Buf_A1H = make8(addres_1,1);//Старший байт
Buf_A1L = make8(addres_1,0);//Младший байт
COUNTER_H=8;
#asm
LFSR 0,0X0F2
MOVFF Buf_A1L, TBLPTR
MOVFF Buf_A1H,TBLPTRH
MOVLW 0x00
MOVWF TBLPTRU
#endasm
#asm
//-------Запись в регистры-----------------------------
MOVLW 8 // number of bytes in holding register
MOVWF COUNTER
TBLRD*-
//-----------------WRITE_WORD_TO_HREGS------------------
WR_MEM1:
MOVF POSTINC0, W //; get low byte of buffer data
MOVWF TABLAT //; present data to table latch
TBLWT+* //; write data, perform a short write
DECFSZ COUNTER //; loop until buffers are full
BRA WR_MEM1
;------------------ PROGRAM_MEMORY---------------------------------------
BSF EECON1,7//EEPGD //; point to FLASH program memory
BCF EECON1,6//CFGS //; access FLASH program memory
BSF EECON1,2//WREN //; enable write to memory
BCF INTCON,7//GIE //; disable interrupts
MOVLW 0X55
MOVWF EECON2 //; write 55h
MOVLW 0XAA //
MOVWF EECON2 //; write AAh
BSF EECON1,1 //WR //; start program (CPU stall)
BSF INTCON,7 //GIE //; re-enable interrupts
BCF EECON1,2 //WREN //; disable write to memory
#endasm |
|
|
|
|
17.05.2015, 21:30
|
|
Вид на жительство
Регистрация: 12.12.2012
Сообщений: 368
Сказал спасибо: 31
Сказали Спасибо 204 раз(а) в 112 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Не хочется быть навязчивым , но с табличное чтение тоже пришлось делать на АСМ. Ну это совсем не трудно. Но врага надо знать в лицо.
Да прибудет с нами сила знаний!
_____________________________________________
Вот сегодня срочно давил приборы в барокамере и .....
Общался с конструкторами . Очень впечатлил рассказ.
Дед рассказал внуку:
Посадили деда - строил речные суда. Вызвал начальник колонии -
Будешь строить мосты. У меня 7 классов, я тебя проверю.
Он - литература нужна. Книжечку по мостам.
- Машина с 20 зеками в библиотку через час и показывай какие стеллажи грузить. К утру был с книгами.
Мосты построил, под мостами с составами стоял.
К 53-му посадили одного мосто-строителя. Посмотрев расчёты- ты превзошёл запасы прочности в 5-8 раз.
Мосты стоят до сих пор. Названий не знаю.
И это не пустая болтовня . Застал (принял должность) у бывшего
главного инженера Норильского Никеля . Он давно к тому времени
давно им не был (86 лет 2002 г). Много не говорил, но когда рассказывал..
Времена были другие.
|
|
|
|
24.05.2015, 18:16
|
|
Частый гость
Регистрация: 25.10.2006
Сообщений: 16
Сказал спасибо: 0
Сказали Спасибо 61 раз(а) в 13 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
|
|
|
Эти 6 пользователя(ей) сказали Спасибо 26165 за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:19.
|
|