Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Hi Tech C и *.Н файл
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=4112
Страница 1 от 1

Автор:  Ки4о [ Чет Апр 26, 2007 4:41 pm ]
Заглавие:  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> щото в него са дефинирани дези неща?

Автор:  Dimitar [ Чет Апр 26, 2007 4:59 pm ]
Заглавие: 

Цитат:
#include <pic18.h>
#include <math.h>
#include <stdlib.h>

#include <pic18f4550.h>

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

Автор:  bkulev [ Пет Апр 27, 2007 9:21 am ]
Заглавие: 

Аз ползавам Hi-Tech само за 16-те.
Мисля, че Димитър е прав.
Разгледай общия файл pic18.h и виж там как е
дефиниран твоя процесор.

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


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

#include <pic.h>

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

Автор:  Ки4о [ Пет Апр 27, 2007 4:15 pm ]
Заглавие: 

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

Автор:  bkulev [ Пет Апр 27, 2007 4:18 pm ]
Заглавие: 

Като намериш свястно лекарство, предложи го тук заедно с версията на компилатора.
Много хора ще са ти благодарни, предполагам :)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/