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
}