PIC16F877A + RS232
Re: PIC16F877A + RS232
De som finns i INC filen är primärt för MPASM, Xelup kör någon C-variant
(det har inte framgått vilken) och då gäller de namn som den kompilatorn
använder. Sen så är det möjligt att den aktuella kompilatorn överför CONFIG
inställningarna till någon assembler (jag hittar inte fel 800 i MPASM manualen).
> men ja får fel när ja skriver de i koden..
Du visar enbart felen, inte vad du faktiskt skrev i koden.
Var det enligt dokumentationen ?
(det har inte framgått vilken) och då gäller de namn som den kompilatorn
använder. Sen så är det möjligt att den aktuella kompilatorn överför CONFIG
inställningarna till någon assembler (jag hittar inte fel 800 i MPASM manualen).
> men ja får fel när ja skriver de i koden..
Du visar enbart felen, inte vad du faktiskt skrev i koden.
Var det enligt dokumentationen ?
Re: PIC16F877A + RS232
Med tanke på outputen, ser det ut som "HI-TECH C Compiler", men jag kan ha fel.
Hur är projektet skapat? Har du använt wizarden eller skapat ett tomt projekt? Är rätt processor vald?
Verkar vara något grundläggande fel eftersom symbolerna inte hittas, verkar inte sökvägarna vara riktiga?
Hur är projektet skapat? Har du använt wizarden eller skapat ett tomt projekt? Är rätt processor vald?
Verkar vara något grundläggande fel eftersom symbolerna inte hittas, verkar inte sökvägarna vara riktiga?
Re: PIC16F877A + RS232
Nja, det är väl felaktiga symboler, vill minnas att de är definierade som Icecap skrev i inc-filerna.
Följaktligen lär inte kompilatorn hitta dem.
Föreslår att TS går tillbaka och startar från noll igen, och använder enklast möjliga exempel, såsom det jag postade innan.
Följaktligen lär inte kompilatorn hitta dem.
Föreslår att TS går tillbaka och startar från noll igen, och använder enklast möjliga exempel, såsom det jag postade innan.
Re: PIC16F877A + RS232
> Nja, det är väl felaktiga symboler, vill minnas att de är definierade som Icecap skrev i inc-filerna.
*VILKA* jäkla INC filer ? Är du helt 100% säker på att du inte blandar ihop de
som kommer med MPASM med de som kommer tillsammans med Hitech-C ?
Notera :
Lite andra småsaker...
> #include <pic.h>
Så vitt jag förstår så ska du göra include på htc.h, sedan
fixar det sig så att det blir rätt filer i fortsättningen.
I detta fall kommer htc.h att göra include på pic.h som kommer
att göra include på pic168xa.h, förutsatt att du har angivit rätt "device"
i kompilatorn.Från pic168xa.h (slutet):
Så din __CONFIG ser i och för sig OK ut. från exemplet i manualen :
Så det är sannolikt viktigt att du gör include på htc.h innan du
försöker sätta __CONFIG(...).
Min tolkning av det hela är att inte rätt include filer inkluderas.
Kan kanske vara ett felsinställd "device" i HiTech...
Notera ckså att fel [800] är förklarat i *HiTech-C* manualen :
*VILKA* jäkla INC filer ? Är du helt 100% säker på att du inte blandar ihop de
som kommer med MPASM med de som kommer tillsammans med Hitech-C ?
Notera :
Blanda inte ihop det med MPASM.The assembler is called ASPIC and is available to run on...
Lite andra småsaker...
> #include <pic.h>
Så vitt jag förstår så ska du göra include på htc.h, sedan
fixar det sig så att det blir rätt filer i fortsättningen.
I detta fall kommer htc.h att göra include på pic.h som kommer
att göra include på pic168xa.h, förutsatt att du har angivit rätt "device"
i kompilatorn.
Kod: Markera allt
#if defined(_16F873A) || defined(_16F874A) ||\
defined(_16F876A) || defined(_16F877A)
#include <pic168xa.h>
#endif
Kod: Markera allt
...
...
#define CONFIG_ADDR 0x2007
/*osc configurations*/
#define RC 0x3FFF // resistor/capacitor
#define HS 0x3FFE // high speed crystal/resonator
#define XT 0x3FFD // crystal/resonator
#define LP 0x3FFC // low power crystal/resonator
/*watchdog*/
#define WDTEN 0x3FFF // enable watchdog timer
#define WDTDIS 0x3FFB // disable watchdog timer
/*power up timer*/
#define PWRTEN 0x3FF7 // enable power up timer
#define PWRTDIS 0x3FFF // disable power up timer
/*brown out reset*/
#define BOREN 0x3FFF // enable brown out reset
#define BORDIS 0x3FBF // disable brown out reset
/*Low Voltage Programmable*/
#define LVPEN 0x3FFF // low voltage programming enabled
#define LVPDIS 0x3F7F // low voltage programming disabled
/*data code protected*/
#define DP 0x3EFF // protect data code
// alternately
#define DPROT 0x3EFF // use DP
#define DUNPROT 0x3FFF // use UNPROTECT
/* Flash memory write enable/protect */
#define WRTEN 0x3FFF /* flash memory write enabled */
#define WP1 0x3DFF /* protect 0000 - 00FF */
#define WP2 0x3BFF /* protect 0000 - 07FF(76A/77A) / 03FF(73A/74A) */
#define WP3 0x39FF /* protect 0000 - 1FFF(76A/77A) / 0FFF(73A/74A) */
/*debug option*/
#define DEBUGEN 0x37FF // debugger enabled
#define DEBUGDIS 0x3FFF // debugger disabled
/*code protection*/
#define PROTECT 0x1FFF /* protect program code */
#define UNPROTECT 0x3FFF /* do not protect the code */
Kod: Markera allt
#include <htc.h>
__CONFIG(WDTDIS & HS & UNPROTECT);
försöker sätta __CONFIG(...).
Min tolkning av det hela är att inte rätt include filer inkluderas.
Kan kanske vara ett felsinställd "device" i HiTech...
Notera ckså att fel [800] är förklarat i *HiTech-C* manualen :
(800) undefined symbol "*" (Assembler)
The named symbol is not defined in this module, and has not been specified GLOBAL.
Re: PIC16F877A + RS232
Nu kan jag inte hitta nånstans att TS använder Hitec-C, enbart ett antagande från janno.*VILKA* jäkla INC filer ? Är du helt 100% säker på att du inte blandar ihop de
som kommer med MPASM med de som kommer tillsammans med Hitech-C ?
Sedan är det inte helt ovanligt att 3djeparts kompilatorer använder uChips include-filer (och dess syntax).
Re: PIC16F877A + RS232
I senaste versionerna av Hitech har man bytt headerfilerna. I filen pic16f877a.h kan man läsa nedanstående:
(Om man vill använda de gamla namnen så får man definiera macrot _LEGACY_HEADERS)
(Om man vill använda de gamla namnen så får man definiera macrot _LEGACY_HEADERS)
Kod: Markera allt
// Config Register: CONFIG
#define CONFIG 0x2007
// Oscillator Selection bits
// RC oscillator
#define FOSC_EXTRC 0xFFFF
// HS oscillator
#define FOSC_HS 0xFFFE
// XT oscillator
#define FOSC_XT 0xFFFD
// LP oscillator
#define FOSC_LP 0xFFFC
// Watchdog Timer Enable bit
// WDT enabled
#define WDTE_ON 0xFFFF
// WDT disabled
#define WDTE_OFF 0xFFFB
// Power-up Timer Enable bit
// PWRT disabled
#define PWRTE_OFF 0xFFFF
// PWRT enabled
#define PWRTE_ON 0xFFF7
// Brown-out Reset Enable bit
// BOR enabled
#define BOREN_ON 0xFFFF
// BOR disabled
#define BOREN_OFF 0xFFBF
// Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit
// RB3/PGM pin has PGM function; low-voltage programming enabled
#define LVP_ON 0xFFFF
// RB3 is digital I/O, HV on MCLR must be used for programming
#define LVP_OFF 0xFF7F
// Data EEPROM Memory Code Protection bit
// Data EEPROM code protection off
#define CPD_OFF 0xFFFF
// Data EEPROM code-protected
#define CPD_ON 0xFEFF
// Flash Program Memory Write Enable bits
// Write protection off; all program memory may be written to by EECON control
#define WRT_OFF 0xFFFF
// 0000h to 00FFh write-protected; 0100h to 1FFFh may be written to by EECON control
#define WRT_256 0xFDFF
// 0000h to 07FFh write-protected; 0800h to 1FFFh may be written to by EECON control
#define WRT_1FOURTH 0xFBFF
// 0000h to 0FFFh write-protected; 1000h to 1FFFh may be written to by EECON control
#define WRT_HALF 0xF9FF
// In-Circuit Debugger Mode bit
// In-Circuit Debugger disabled, RB6 and RB7 are general purpose I/O pins
#define DEBUG_OFF 0xFFFF
// In-Circuit Debugger enabled, RB6 and RB7 are dedicated to the debugger
#define DEBUG_ON 0xF7FF
// Flash Program Memory Code Protection bit
// Code protection off
#define CP_OFF 0xFFFF
// All program memory code-protected
#define CP_ON 0xDFFF
Re: PIC16F877A + RS232
Det jag antog med är följande rad "(1273) Omniscient Code Generation not available in Lite mode (warning)" vilket min HI-TECH C meddelar varje gång jag bygger ett projekt så sannolikheten är ganska hög.
Jag försökte provocera fram felet genom att flytta runt på __CONFIG samt lägga till pic.h i ett projekt jag håller på med just nu men inget gav något annorlunda fel än:
pic.h gjorde varken till eller från på resultatet.
ghu hann före med ett ganska trolig anledning, jag har nog en gammal ouppdaterad version (V9.80).
Jag försökte provocera fram felet genom att flytta runt på __CONFIG samt lägga till pic.h i ett projekt jag håller på med just nu men inget gav något annorlunda fel än:
Kod: Markera allt
Error [194] C:\Users\jn\Documents\mplab\7seg16F886\main.c; 1.14 ")" expected
Warning [349] C:\Users\jn\Documents\mplab\7seg16F886\main.c; 1.53 non-prototyped function declaration for "__CONFIG"
Error [313] C:\Users\jn\Documents\mplab\7seg16F886\main.c; 1.53 function body expected
ghu hann före med ett ganska trolig anledning, jag har nog en gammal ouppdaterad version (V9.80).
Re: PIC16F877A + RS232
OK.
Det är ju självklart att man måste följa den aktuella versionen som man har.
Jag har också 9.80 installerat i december-2010. Det verkar alltså ha hänt
saker efter det. Eftersom det saknas mycket info om vilken miljö Xelup kör
i så är det nog ingen annan än Xelup som kan reda ut detta...
Det är ju självklart att man måste följa den aktuella versionen som man har.
Jag har också 9.80 installerat i december-2010. Det verkar alltså ha hänt
saker efter det. Eftersom det saknas mycket info om vilken miljö Xelup kör
i så är det nog ingen annan än Xelup som kan reda ut detta...

Re: PIC16F877A + RS232
HEJ alla
Ser att ni har skrivit mkt, vill bara säga att de var fel på pic:arna.
Alltså samma fel på båda två.
Tack alla för att ni har tagit er tid. ha en fin dag.
mvh xelup
Ser att ni har skrivit mkt, vill bara säga att de var fel på pic:arna.
Alltså samma fel på båda två.
Tack alla för att ni har tagit er tid. ha en fin dag.
mvh xelup
Re: PIC16F877A + RS232
Har du löst problemet?
Maila mig så har jag fungerande kod för din processor med Hi-techs kompilator..
Maila mig så har jag fungerande kod för din processor med Hi-techs kompilator..