20.06.2011, 11:27
|
|
Прописка
Регистрация: 07.05.2008
Адрес: Москва
Сообщений: 231
Сказал спасибо: 26
Сказали Спасибо 54 раз(а) в 19 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Спасибо, конечно за совет, но в листе С\ASM этой строчке посвящён перевод в ASM состоит всего из нескольких строчек:
0231: BSF 03.5
0232: BCF 06.3
0233: BCF 03.5
0234: BCF 06.3
0235: MOVLW 0C
0236: MOVWF 17
котрые конфигурируют регистры ССРхCON...
Я не думаю что по времени это очень долго.....
Комп достаточно мощный: 4 ядра по 2,4 ГГц, оперативки 2Гб.
Осцилограммы ШИМ снимал виртуальным осцилографом в Протеусе, всё работает так, как было задумано.
Вывод мне кажется один: надо пробовать в железе. Главным образом меня интересовал только вопрос о реальном времени симуляции......
Похоже с ШИМом только у меня такой опыт...
|
|
|
|
24.06.2011, 19:34
|
|
Частый гость
Регистрация: 05.11.2010
Сообщений: 11
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
подскажите пожалуйста , как оформить запись и чтение eeprom двухбайтной переменной
|
|
|
|
24.06.2011, 20:03
|
|
Гражданин KAZUS.RU
Регистрация: 06.08.2006
Сообщений: 694
Сказал спасибо: 24
Сказали Спасибо 38 раз(а) в 31 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
из какой еепром внутренней или внешней? А так просто читаешь сначала старший байт а потом младший затем старший сдвигаешь и прибавляешь младший.
|
|
|
|
24.06.2011, 22:03
|
|
Частый гость
Регистрация: 05.11.2010
Сообщений: 11
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
внутренний. а запись как? попроще одной командой ни как?
|
|
|
|
24.06.2011, 22:10
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
salarm,
Читаем help
How do I write variables to EEPROM that are not a byte?
Пример записи и чтения float ( 4 байт ).
По аналогии и на 2 байта .
Цитата:
|
The following is an example of how to read and write a floating point number from/to EEPROM. The same concept may be used for structures, arrays or any other type.
n is an offset into the EEPROM.
For floats you must increment it by 4.
For example, if the first float is at 0, the second one should be at 4, and the third at 8.
WRITE_FLOAT_EXT_EEPROM( long int n, float data) {
int i;
for (i = 0; i ‹ 4 ; i++)
write_ ext_ eeprom(i + n, *(((int 8 *)&data + i) ) ;
}
float READ_FLOAT_EXT_EEPROM( long int n) {
int i;
float data;
for (i = 0; i ‹ 4; i++)
*(((int 8 *)&data) + i) = read_ ext_ eeprom(i + n);
return(data);
}
|
__________________
Осторожно , злой кот
|
|
|
Сказали "Спасибо" dosikus
|
|
|
24.06.2011, 23:26
|
|
Частый гость
Регистрация: 05.11.2010
Сообщений: 11
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
все просто и понятно , спасибо!
|
|
|
|
28.06.2011, 19:16
|
|
Частый гость
Регистрация: 05.11.2010
Сообщений: 11
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
так ничего у меня не получилось. WRITE_FLOAT_EXT_EEPROM- разве это внутренний еепром?
Как призвести запись в еепром , например x=0x3437 в ячейку 0x1A , 0x1B . а потом прочесть?
|
|
|
|
29.06.2011, 09:54
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,579
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Сообщение от salarm
|
так ничего у меня не получилось. WRITE_FLOAT_EXT_EEPROM- разве это внутренний еепром?
Как призвести запись в еепром , например x=0x3437 в ячейку 0x1A , 0x1B . а потом прочесть?
|
Так ты поменяй на нужную функцию записи и чтения в еепром(на память не помню) вместо write_ ext_ eeprom,read_ ext_ eeprom.
__________________
Глаза боятся,а руки делают.
|
|
|
|
29.06.2011, 18:21
|
|
Частый гость
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
Вот что умеет CCS делать с памятью ...
Ваше случае надо заменить в
Код:
|
WRITE_FLOAT_EXT_EEPROM( long int n, float data) {
int i;
for (i = 0; i ‹ 4 ; i++)
write_ ext_ eeprom(i + n, *(((int 8 *)&data + i) ) ;
} |
на
Код:
|
WRITE_FLOAT_EXT_EEPROM( long int n, float data) {
int i;
for (i = 0; i ‹ 4 ; i++)
write_ eeprom(i + n, *(((int 8 *)&data + i) ) ;
} |
Последний раз редактировалось xDriver; 29.06.2011 в 18:24.
|
|
|
Сказали "Спасибо" xDriver
|
|
|
29.06.2011, 22:04
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Изучение PIC C Compiler(CCS C)
xDriver, Надо еще сообщить просящему , что пишем в примере 4 байта .
А то опять начнется ...
__________________
Осторожно , злой кот
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 22:33.
|
|