Stránka 1 z 1

Jak přistupovat v HI-TECH compileru na GPIO

Napsal: 07 říj 2012, 15:04
od markoni
Zdravím
Mám takový zdrojový program

Kód: Vybrat vše

#include <htc.h>
#define _XTAL_FREQ 4000000
#include <PIC.h>

void main ()
{
TRIS = 0b0000;   
GPIO;   
 unsigned  int i;
 while (1)
 {
GP1='1';
GP0='0';
for (i=0;i<36000;i++) __delay_ms(1000);
GP1='0';
GP0='1';   
for (i=0;i<2;i++) __delay_ms(1000);

}
}

na simulátoru ISIS 7 mě to funguje ale v reálu PIC10F206 ne kde dělám chybu? díky

Napsal: 07 říj 2012, 17:04
od frpr666
Zjednoduš program a vyzkoušej zda naměříš na pinu +5V.
Dále se podívej po kompilaci do *.lst souboru na TRIS a GPIO, zda se tam zapisuje hodnota.

Kód: Vybrat vše

void main()
{
TRIS = 0x00;
GPIO = 0x0f;
for(;;)
{
};
}

Napsal: 07 říj 2012, 17:09
od Andrea
markoni píše:for (i=0;i<36000;i++) __delay_ms(1000);

delay_ms(1000) počká jednu sekundu a to celé se opakuje 36000-krát, to znamená, že program nastaví dva piny a pak 10 hodin nic nedělá. A co ti to nedělá v reálu? :) Nemáš třeba v reálu oscilátor 1MHz a nečeká to 40 hodin?

Napsal: 08 říj 2012, 16:58
od markoni
Zdravím
Mě jde o nahození logické 1 na GP1 aby si mi rozsvítila ledka co mám na začátku toho programu.Pochopitelně když to dávám na simulátor tak do cyklu for dám menší hodnotu díky

Napsal: 08 říj 2012, 17:39
od Andrea
No určitě tam nemá být GP1='1'; '1' je ASCII znak 1 tj. 0x31, takže správně tam bude spíš GP1=1;
A co asi udělá GPIO; ? Nechybí tam něco? A není potřeba vypnout komparátor aby fungovaly GP0 a GP1?
A základní předpoklad je správně zvolený procesor v konfiguraci projektu.

Napsal: 09 říj 2012, 17:14
od markoni
Možná jsem už otravný koukal jsem se do datašítu ale nevím jak se vypne komparátor v jakém registru? díky

Napsal: 09 říj 2012, 19:48
od MiloPS3
staci si najit "COMPARATOR MODULE" a pak "COMPARATOR IS ON /OFF"
diky

me to v simulatoru funguje , kdyz vypnu komparator a spravne nastavuju log. hodnotu

Napsal: 13 říj 2012, 14:11
od frpr666
hele zkus toto:

Kód: Vybrat vše

main()
{
CMCON0 = 0xf7; //0b11110111 default settings+comparator off
TRIS = 0x00;    // all I/O are outputs
GPIO = 0x0f;  // set I/O
for(;;){};       // do nothing forever
}