Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум


 
Опции темы

Изучение PIC C Compiler(CCS C)

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

Имеется у меня icd2 и решил отладить код на Си через мплаб,да вот незадача не могу скомпилировать код в мплаб с помощью CCS.Хотя в родной оболочке CCS компилируется без ошибок.
Попробовал создать проект в одном файле,компиляция в мплаб прошла успешно.Но только я разбиваю на несколько файлов как появляется ошибка про объявлении процессора в файле(1 снимок),тогда вставляю в файл my_lcd.c строчку сначало:
Код:
#include ‹18F252.h›
ошибки нет,но появляются ошибки о том что функция delay_us не определена(снимок 2),будто каждый файл сам по себе,а не связываются воедино....
Миниатюры:
Нажмите на изображение для увеличения
Название: mplab1.jpg
Просмотров: 61
Размер:	46.7 Кб
ID:	12687   Нажмите на изображение для увеличения
Название: mplab2.jpg
Просмотров: 57
Размер:	62.2 Кб
ID:	12688  
Вложения:
Тип файла: rar test_mplab.rar (13.4 Кб, 55 просмотров)
Реклама:
__________________
Глаза боятся,а руки делают.

Последний раз редактировалось CERGEI1982; 21.09.2010 в 17:39. Причина: поправил
CERGEI1982 вне форума  
Непрочитано 21.09.2010, 18:10  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Подрихтовал . Это по быстрому .
Но надо почитать тебе в хелпе Multiple Compilation Units.
И если пользуешь дрова , так и хидеры и определения к ним просматривай...
Вложения:
Тип файла: rar test_mplab.rar (42.4 Кб, 54 просмотров)
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
CERGEI1982 (21.09.2010)
Непрочитано 22.09.2010, 03:38  
CERGEI1982
Почётный гражданин KAZUS.RUN
 
Аватар для CERGEI1982
 
Регистрация: 03.01.2007
Адрес: Россия,Иркутская обл.
Сообщений: 2,578
Сказал спасибо: 351
Сказали Спасибо 315 раз(а) в 193 сообщении(ях)
CERGEI1982 на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Переведено Промт-переводчиком:
Традиционно, CCS C Компилятор использует только одну единицу компиляции, и многократные файлы осуществлены, используя #INCLUDE. Используя многократные единицы компиляции, заботе нужно дать тот препроцессор команды, которые управляют компиляцией, совместимы через все единицы. Рекомендуется, чтобы директивы, такие как #FUSES, #USE, и заголовочный файл устройства были все помещены в единственный файл, включенный всеми единицами. Когда единица будет собрана, она произведет перемещаемый файл объекта (*.o) и файл символа (*.osym).
__________________
Глаза боятся,а руки делают.
CERGEI1982 вне форума  
Непрочитано 22.09.2010, 15:53  
Sanja_K
Прохожий
 
Регистрация: 16.08.2006
Сообщений: 8
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
Sanja_K на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

В mplab ПРОВЕРЬ ВЫБОР КОНТРОЛЛЕРА
дАЛЕЕ МОЙ ПРИМЕР:
#include ‹drivers/18F452.h›
#use delay(clock=40000000)
#fuses /**/H4/*/HS/**/,PUT,BROWNOUT,BORV27,NOWDT, CCP2B3,NOLVP,NODEBUG
#include ‹include/Data.h›
void main(void) {
ADCON1 |= 0x0F;
PORTA = 0;
PORTB = 0;
PORTC = 0;
set_tris_A(0b00000000);
set_tris_B(0b00000000); // Настройка порта B in/out
set_tris_C(0b00011000);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_16);
PORTA = 0xFF;
delay_ms(10);
enable_interrupts(int_timer0);
/// enable_interrupts(INT_RDA);
enable_interrupts(global);
while(TRUE) {
delay_us(900);
TimeDS ();// моя функция
}
}
Sanja_K вне форума  
Непрочитано 26.09.2010, 01:22  
xDriver
Частый гость
 
Аватар для xDriver
 
Регистрация: 01.03.2008
Сообщений: 37
Сказал спасибо: 3
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
xDriver на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

CCS v4.110 и 4.111 имеют баги
__http://www.ccsinfo.com/forum/viewtopic.php?t=43333

v4.112 нет еще не у кого ?
xDriver вне форума  
Непрочитано 01.10.2010, 22:06  
ZoomerJuk
Временная регистрация
 
Регистрация: 12.09.2008
Сообщений: 61
Сказал спасибо: 20
Сказали Спасибо 7 раз(а) в 5 сообщении(ях)
ZoomerJuk на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Ув. профи,бъясните, пожалуйста!
Осваиваю ccs, в свою программу вставляю код из программы написанной в среде HI-TECH:
Цитата:
void nokia_printmessage(const char* message)
// Write message to LCD (C string type)
{
while (*message) // Look for end of string
nokia_printchar(*message++); //
}
//______________
void nokia_printchar(byte c)
// Write 1 character to LCD
{
charsel=c;
table_to_nokialcd();
}
//_____________
при этом компилятор ругается на const char* message. я так понимаю проблема в том, что в ccs строковые переменные применяются по-другому? как в ccs представить вышеприведенный код?
ZoomerJuk вне форума  
Непрочитано 01.10.2010, 22:51  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

ZoomerJuk, В начало
Код:
#device CONST=ROM
И далее везде const меняем на ROM.
И читаем в хелпе Using Program Memory for Data
__________________
Осторожно , злой кот
dosikus вне форума  
Сказали "Спасибо" dosikus
ZoomerJuk (03.10.2010)
Непрочитано 02.10.2010, 18:22  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Не знаю каширно или нет (пусть знатоки С поправят) , шарясь по форуму CCS, худо-бедно допер до такого решения :
Asm вставки для дебага.

PHP код:
#include ‹16F887.h›
#device *=16
#device CONST=ROM

#fuses INTRC_IO,NOWDT,  NOPROTECT, NOBROWNOUT, NOCPD
#use delay(clock=4000000)

//-------------------------------
ROM char init_0[20] =
           {0xEF, 0x00, 0xEE, 0x04, 0x1B, 0x04, 0xFE, 0xFE,
0xFE, 0xFE, 0xEF, 0x90, 0x4A, 0x04, 0x7F, 0x3F, 
0xEE, 0x04, 0x43, 0x06};
           
ROM   char  init_1[46]  =
                      {0xEF, 0x90, 0x09, 0x83, 0x08, 0x00, 0x0B, 0xAF,
0x0A, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07, 0x00, 
0xEF, 0x00, 0xEE, 0x0C, 0xEF, 0x90, 0x00, 0x80, 
0xEF, 0xB0, 0x49, 0x02, 0xEF, 0x00, 0x7F, 0x01,
0xE1, 0x81, 0xE2, 0x02, 0xE2, 0x76, 0xE1, 0x83,
0x80, 0x01, 0xEF, 0x90, 0x00, 0x00};
 
ROM char string1[]={"Hello word"};
ROM char string2[]={"Здравствуй мир"};

ROM char *ptr;
//-----------------------------------
char bufer[50];
void lcd_str(int16 i,ROM char *data)
{
 char temp;
 temp=0;
while (i--)
     {
      temp = *data++;
     
     }
}

void main(void)
{
 int8 i=0;
 ptr= init_0;
 #asm
 NOP
 #endasm
 for(i;i‹sizeof init_0;i++){
     bufer[i]=*ptr++;
     }
     ptr=string1;
     i=0;
 #asm
 NOP
 #endasm
for(i;i‹sizeof string1;i++){
     bufer[i]=*ptr++;
     }    
     
 #asm
 NOP
 #endasm      
lcd_str(sizeof init_0,init_0);

ptr= init_0;
 #asm
 NOP
 #endasm        
   while(1)
   {
   }
} 
Вложения:
Тип файла: rar lcd_887_test_pointer.rar (18.7 Кб, 55 просмотров)
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 02.10.2010 в 18:26.
dosikus вне форума  
Непрочитано 02.10.2010, 22:08  
urry
Почётный гражданин KAZUS.RUN
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 107 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

хз насчет кошерности..

А просто по рабоче-крестьянски, нельзя ?

ROM char string1[]={"Hello word"};
ROM char string2[]={"Здравствуй мир"};

ROM char *ptr;
//-----------------------------------
char bufer[50];
void cp_str(ROM char *data, char *ram )
{
ram= bufer;
do{
*ram++ = *data++;
}while(data);
}
__________________
warez
urry вне форума  
Непрочитано 02.10.2010, 22:48  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

urry, счас потестим .
Я почему и спрашивал , у CCS постоянные за...ы с к указателями на ROM . Из версии к
версии все чудеснее и чудеснее...

Лается -
Цитата:
Improper use of a function identifier

PHP код:
void cp_str(ROM char *data, char *ram )
{
do{
*ram++ = *data++;
}while(data);

void main(){
cp_str(string1,bufer);    
#asm
NOP
#endasm
} 
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 02.10.2010 в 23:03.
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, время: 01:29.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.