Отговори на тема  [ 5 мнения ] 
Hi Tech C и *.Н файл 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение Hi Tech C и *.Н файл
Продължавайки упорито да тормозя компилатора(и себе си) стирнах до следната ситуация:



#define XTAL_FREQ 36MHZ
#include <pic18.h>
#include <math.h>
#include <stdlib.h>

#include <pic18f4550.h>

__CONFIG(1,HS & FCMDIS & IESODIS);
__CONFIG(2,VREGDIS & PWRTDIS & BORDIS & WDTDIS & WDTPS32K);
__CONFIG(3,CCP2RC1 & PBADDIS & LPT1DIS & MCLREN);
__CONFIG(4,STVREN & LVPDIS & XINSTDIS & DEBUGDIS & ICPORTDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(6,UNPROTECT);
__CONFIG(7,UNPROTECT);

void main()
{

Init();

while(1) //Loop Forever
{

}
}

void Init(void)
{
PORTA = 0;
TRISA = 0b00101101; // Set RA4 and RA2 as outputs
PORTC = 0;
TRISC = 0b00000011; // Set RC0 and RC1 as inputs, rest outputs
CMCON = 0b00000111; // Disable the comparator

IRCF0 = 1; // Used to set intrc speed to 8 MHz
IRCF1 = 1; // Used to set intrc speed to 8 MHz
IRCF2 = 1; // Used to set intrc speed to 8 MHz

CCP1CON = 0b01001100; // Full bridge PWM forward
ECCPAS = 0;
PR2 = 0x3F; // Sets PWM Period at 31.2 kHz
T2CON = 0; // TMR2 Off with no prescale
CCPR1L = 0; // Sets Duty Cycle to zero
TMR2ON = 1; // Start Timer2

ANSEL = 0b00110101; // Configure AN0,AN2,AN4 and AN5 as analog
VCFG = 0; // Use Vdd as Ref
ADFM = 1; // Right justified A/D result
ADCS0 = 1; // 16 TOSC prescale
ADCS1 = 0;
ADCS2 = 1;
CHS0 = 0; // Channel select AN0
CHS1 = 0;
CHS2 = 0;
ADON = 1; //Turn A/D on

ei(); // enable IRQ
}


void interrupt Isr()
{
// IRQ program
}

Когато го компилирам ми дава следните грешки:

Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 977 : redefining preprocessor macro "STVREN"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 978 : redefining preprocessor macro "STVRDIS"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 980 : redefining preprocessor macro "LVPEN"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 981 : redefining preprocessor macro "LVPDIS"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 983 : redefining preprocessor macro "ICPORTEN"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 984 : redefining preprocessor macro "ICPORTDIS"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 986 : redefining preprocessor macro "DEBUGDIS"
Error[111] C:\Program Files\HI-TECH Software\PICC-18\9.50\include\pic18f4550.h 987 : redefining preprocessor macro "DEBUGEN"
От къде по дяволите се предефинира? И как се ползват файловете <pic_xxx_.h> в Hi-Tech компилатора?Ако искам да използвам дадено име на бит примерно TMR0ON,всеки път ли трябва да се дефинира
static bit TMR0ON @ ((unsigned)&T0CON*8+0); и става едно писане.....Та как се ползва <pic18f4550.h> щото в него са дефинирани дези неща?


Чет Апр 26, 2007 4:41 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Ное 12, 2004 3:38 pm
Мнения: 9103
Местоположение: Chicago, IL
Мнение 
Цитат:
#include <pic18.h>
#include <math.h>
#include <stdlib.h>

#include <pic18f4550.h>

Не ти трябват чукорнайсе файла с дефиниции. Махни първия :)


Чет Апр 26, 2007 4:59 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Яну 25, 2006 12:47 pm
Мнения: 305
Местоположение: Varna
Мнение 
Аз ползавам Hi-Tech само за 16-те.
Мисля, че Димитър е прав.
Разгледай общия файл pic18.h и виж там как е
дефиниран твоя процесор.

Аз правя така:


#ifndef _16F876A
#define _16F876A // This will include a header file for 16F876A
#endif

#include <pic.h>

и няма проблеми


Пет Апр 27, 2007 9:21 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Нещо не са го излекували както трябва компилатора.Ползвам 9.61PRO за 18 серия.И да го дефинирам както каза bkulev, пак дава "redefining preprocessor macro "За момента ме спасява :
#ifndef _18F4550
#define _18F4550 // This will include a header file for 18F4550
#endif
#include <pic18f4550.h>
Обикновенно се компилира от втория път.Явно ще трябва да сменя лекарството.


Пет Апр 27, 2007 4:15 pm
Профил
Ранг: Популярен
Ранг: Популярен

Регистриран на: Сря Яну 25, 2006 12:47 pm
Мнения: 305
Местоположение: Varna
Мнение 
Като намериш свястно лекарство, предложи го тук заедно с версията на компилатора.
Много хора ще са ти благодарни, предполагам :)


Пет Апр 27, 2007 4:18 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни