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

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

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

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

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

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


Ответ
Опции темы
Непрочитано 04.10.2010, 20:40   #711
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от ZoomerJuk Посмотреть сообщение
готово! все РАБОТАЕТ!
Попробуй файл обратно в main переименовать .
Я начинаю вспоминать , что старые версии такое имя не переваривали из-за того что в них main loop был ...
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 17:21   #712
kuksin
Частый гость
 
Аватар для kuksin
 
Регистрация: 25.09.2005
Сообщений: 21
Сказал спасибо: 47
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
kuksin на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Здравствуйте.
Пытаюсь реализовать меню с использованием структур.
Описал структуру меню, однако при попытке ее инициализации после компиляции получил листинг ошибок.
Компилятор CCS v4.110.

Код:
#include "16F886.h"
#device adc=8

#FUSES NOWDT                 	//No Watch Dog Timer
#FUSES INTRC_IO              	//Internal RC Osc, no CLKOUT
#FUSES NOPUT                 	//No Power Up Timer
#FUSES MCLR                  	//Master Clear pin enabled
#FUSES NOPROTECT             	//Code not protected from reading
#FUSES NOCPD                 	//No EE protection
#FUSES NOBROWNOUT            	//No brownout reset
#FUSES IESO                  	//Internal External Switch Over mode enabled
#FUSES FCMEN                 	//Fail-safe clock monitor enabled
#FUSES NOLVP                 	//No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NODEBUG               	//No Debug mode for ICD
#FUSES NOWRT                 	//Program memory not write protected
#FUSES BORV40                	//Brownout reset at 4.0V

#use delay(int=4000000)


#byte	PORTA=0x05
#byte	PORTB=0x06
#byte	PORTC=0x07
Код:
//menu.c

#include "main.h"


typedef const void (*fn)(char);
fn  itemFunction;


           
//Создаем тип структуры пункта меню
typedef const struct _menuItem	
            {
			char    	*itemText[];              
			void		*itemFunction;
			char		itemArg;
			};
//Функция редактирования времени
void edit_time(char *time)
	{
    	#asm
    	nop
    	#endasm
	}


//Инициализируем строки вывода на дисплей
const char	_menu[]	= "      Menu      ",\
			_time[] = "      Time      ";
			



//Инициализируем структуры пунктов меню
struct _menuItem       MenuItem_menu = {_menu,\
                                		0,\
                                		0};			
struct _menuItem       MenuItem_time = {_time,\
                                    	edit_time,\
                                    	0};
		


//   Menu	-- главная функция обработки меню
//
void Menu(void)
	{
#asm
nop
#endasm
	}
Код:
//main.c

#include "main.h"


extern Menu();

void main()
{

   setup_adc_ports(NO_ANALOGS|VSS_VDD);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_comparator(NC_NC_NC_NC);// This device COMP currently not supported by the PICWizard
   enable_interrupts(INT_TIMER1);
   enable_interrupts(GLOBAL);
   setup_oscillator(OSC_4MHZ);
        
        while(1)
        {
            
            Menu();
   
        }

}
Код:
//листинг компиляции:

Executing: "C:\Program Files\PICC110\PICC\Ccsc.exe" +FM "menu.c" +EXPORT I+="C:\Program Files\PICC110\PICC\Devices"  +DF +LN +T +A +M +Z +Y=9 +EA
*** Error 27 "menu.c" Line 33(46,47): Expression must evaluate to a constant
*** Error 43 "menu.c" Line 34(33,34): Expecting a declaration
*** Error 43 "menu.c" Line 34(34,35): Expecting a declaration
*** Error 43 "menu.c" Line 35(33,34): Expecting a declaration
*** Error 43 "menu.c" Line 35(34,35): Expecting a declaration
*** Error 43 "menu.c" Line 35(35,36): Expecting a declaration
*** Error 27 "menu.c" Line 36(46,47): Expression must evaluate to a constant
*** Error 48 "menu.c" Line 37(37,46): Expecting a (
*** Error 43 "menu.c" Line 38(37,38): Expecting a declaration
*** Error 43 "menu.c" Line 38(38,39): Expecting a declaration
*** Error 43 "menu.c" Line 38(39,40): Expecting a declaration
D:\KLG\PicProj\Proj_CCS\test_mnu_1\menu.o ===›  11 Errors,  0 Warnings.
BUILD FAILED: Fri Nov 12 15:00:55 2010
Что я не так делаю?
Спасибо.
kuksin вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 17:35   #713
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от kuksin Посмотреть сообщение
Что я не так делаю?
Спасибо.
У Вас в структуре поля типа char*, а инициализацию Вы делаете значениями const char*
testerplus вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 18:01   #714
kuksin
Частый гость
 
Аватар для kuksin
 
Регистрация: 25.09.2005
Сообщений: 21
Сказал спасибо: 47
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
kuksin на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от testerplus Посмотреть сообщение
У Вас в структуре поля типа char*, а инициализацию Вы делаете значениями const char*
А как правильно написать, чтобы инициализированные структуры всех подменю и тексты строк были размещены в ROM?
kuksin вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 18:21   #715
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от kuksin Посмотреть сообщение
А как правильно написать, чтобы инициализированные структуры всех подменю и тексты строк были размещены в ROM?
Так и писать с const:
Код:
typedef struct menu
{
    const char *itemText;       // Здесь не должно быть "[]"
    void (*itemFunction)(void);
    char  itemArg
};
testerplus вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 18:56   #716
kuksin
Частый гость
 
Аватар для kuksin
 
Регистрация: 25.09.2005
Сообщений: 21
Сказал спасибо: 47
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
kuksin на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Уважаемый testerplus. Внес указанные Вами исправления, компилятор на строку
const char *itemText;
выдает сообщение: *** Error 34 "menu.c" Line 16(1,6): Unknown type,

на строку
const char itemArg;
выдает сообщение: *** Error 46 "menu.c" Line 18(18,19): Expecting an =

Вы не пробовали компилировать мой фрагмент кода?
Спасибо.
kuksin вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 19:40   #717
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от kuksin Посмотреть сообщение
Вы не пробовали компилировать мой фрагмент кода?
Чуть позже попробую. Сам CCS имеет кое-какие проблемы с указателями, поэтому, скорее всего, без шаманства не обойдется.
testerplus вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 20:23   #718
kuksin
Частый гость
 
Аватар для kuksin
 
Регистрация: 25.09.2005
Сообщений: 21
Сказал спасибо: 47
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
kuksin на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Вы абсолютно правы. Я уже несколько дней бьюсь. Ответов пока не нашел. Мануал на CCS такой скудный, особенно в части описания его особенностей и ограничений. Поэтому в случаях, когда он ругается на некоторые конструкции и невозможно найти причину в его описании, приходится танцевать с бубном. А если и это не помогает, приходится тревожить Гуру на форуме.
kuksin вне форума   Ответить с цитированием
Непрочитано 12.11.2010, 20:55   #719
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от kuksin Посмотреть сообщение
Мануал на CCS такой скудный, особенно в части описания его особенностей и ограничений.
Есть форум , и там найдете все...
http://www.ccsinfo.com/forum/index.php
__________________
Осторожно , злой кот
dosikus вне форума   Ответить с цитированием
Непрочитано 13.11.2010, 00:09   #720
kuksin
Частый гость
 
Аватар для kuksin
 
Регистрация: 25.09.2005
Сообщений: 21
Сказал спасибо: 47
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
kuksin на пути к лучшему
По умолчанию Re: Изучение PIC C Compiler(CCS C)

Сообщение от dosikus Посмотреть сообщение
Есть форум , и там найдете все...
http://www.ccsinfo.com/forum/index.php
Спасибо, dosikus.
Вот здесь
http://www.ccsinfo.com/faq.php?page=constant_data
разъяснили, что нельзя обратиться к элементам массива, расположенного в ROM, через указатель:
Код:
For example, to place a 10 element BYTE array in ROM use:

BYTE CONST TABLE [10]= {9,8,7,6,5,4,3,2,1,0};
and to access the table use:

x = TABLE [i];
  OR 
x = TABLE [5];
BUT NOT

ptr = &TABLE [i];
In this case, a pointer to the table cannot be constructed.
Как говорил Ю. Никулин в известном фильме: - "Будем искать" другое решение.
kuksin вне форума   Ответить с цитированием
Ответ

Закладки

Опции темы

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

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, время: 21:20.


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