PIC 12C509 vs HI-TECH compiler - undefined identifier DD-WRT

Zdravím
Trochu se chci ponořit do tajů HI-TECH compileru a narazil jsem na tento problém.

#include <htc.h>

void main () 
{
	_delay(1);     // jak dlouho to trvá při 4 MHz ?
	DDRG |= 1<<GPIO,1; // jak nastavit pin jako výstup?
	GPIO |= 1<<GPIO, 1;
	
} 

a výsledek po kompilaci

Clean: Deleting intermediary and output files.
Clean Warning: File “C:\Program Files\Microchip\casovac.p1” doesn’t exist.
Clean: Done.
Build C:\Program Files\Microchip\casovac for device 12C509A
Using driver C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe

Executing: “C:\Program Files\HI-TECH Software\PICC\9.80\bin\picc.exe” --pass1 “C:\Program Files\Microchip\casovac.c” -q --chip=12C509A -P --runtime=default,+clear,+init,-keep,+osccal,-download,-resetbits,-stackcall,+clib --opt=default,+asm,-debug,-speed,+space,9 --warn=0 --double=24 --float=24 --addrqual=ignore -g --asmlist “–errformat=Error %n] %f; %l.%c %s” “–msgformat=Advisory%n] %s” “–warnformat=Warning %n] %f; %l.%c %s”
Error [192] C:\Program Files\Microchip\casovac.c; 6.1 undefined identifier “DDRG”

********** Build failed! **********

díky všem

:arrow_right: administrator: přejmenováno z "PIC 12C509 vs HI-TECH compiler"

Cau, v cem je problem ? vzdit to tam mas napsany

odkdy ma PIC DDRG :question:

a u PICu si nejdriv musis nastavit TRIS …(jak nastavit pin jako výstup? )

vrtas se v tom uz 3 roky a nedokazes si nastavit ani I/O ?

Myslíš něco takovýho! Je to na 16F690, ale princip je stejnej.

[code]#include <htc.h>
#define _XTAL_FREQ 4000000

void main(void)
{
TRISC = 0b00000000; //nastavení I/O 0-out 1-in

while(1)
{
		__delay_ms(1); //zpoždění 1 ms
		PORTC= 0b11111111; // celý portc v H
		__delay_ms(1); //zpoždění 1 ms
		PORTC= 0b00000000; // celý portc v L
}

}[/code]

To chápu jak nastavit klasický port ale není mi jasné jak to nastavit u GPIO když tam napíši TRIS GPIO tak to kompiler neskousne :blush:
i když jsem to našel v dašítu k PIC12C509A díky

Tak to ti nepomůžu, jsem to vždycky dělal jenom přes TRIS a zatím jsem si vystačil. :slight_smile:

Zkus tohle, v simulaci(Isis Proteus) to funguje bez problému.
Zkoušel jsem s PIC12C509A

#include <htc.h>
#define _XTAL_FREQ 4000000UL
#include <pic.h>

__CONFIG(OSC_IntRC & WDT_OFF & CP_OFF & MCLRE_OFF);
//======================================================
void main(void)
{
	OPTION = 0b11000000;
	TRISGPIO = 0b00000000;

//===============================
	while(1)
	{
		GPIObits.GP0 = 1;
		__delay_ms(500);
		GPIObits.GP0 = 0;
		__delay_ms(500);
	}
}

hmm ,to mas asi nejakej divnej DS…

radsi se koukni jakej vyznam ma registr GPIO a registr TRIS, pak pochopis jak nastavit klasickej port ,a abys nemohl rict ze neumis anglicky tak tady mas ceskej preklad

B0sc0 ti to napsal ,akorad pro jinej typ…
zapis do TRISTRIS = 0b00111110; // 0x3E / 62 nebo TRISGPIO=0b00111110; // 0x3E / 62
zapis do GPIOGPIO = 0b00000001; // 0x1 / 1 nebo GPIObits.GP0 = 0; // 1 GPIObits.GP1 = 0; // 1 .
PIC12F675CZ.pdf (2.32 MB)