Problem s picem v C

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

Problem s picem v C

#1 Příspěvek od bluepatch »

Zdravim, mam problem s timto programem:

Kód: Vybrat vše

void main() {
USART_init(9600);
PORTA = 0;
TRISA.F1 = 1;
ANSEL = 1;
ANSELH = 1;
 USART_Write(48);
 PRINT:
   if (PORTA.f1 == 1) {

       USART_Write(49);

     }
   Delay_ms(1000);
   goto PRINT;
}

Je to jen jednoduchy priklad, kdy ma po privedeni napeti na portA pin 1 zacit poslat jednicky pres uart.. v pohode zkompiluju, hodim do pic simulatoru, tam to frci presne tak jak ma, pak to nahraju do picu a uz to co chci nedela..posila to ty jednicky porad jako by tam zadna podminka nebyla.. nechapu. Nesetkal se s timto uz nekdo? Pic pouzivam 16F690 a pisu to v mikroC. Uz fakt zacinam premyslet ze je vadnej pic a ne ja..

A jeste mam jeden dotaz, da se nejak naprogramovat, aby pic spojil dva piny? Udelal je po nejakou dobu pruchozi, pak ze zas odpojil..

Dik za rady.
Uživatelský avatar
ZdenekHQ
Významný člen
Příspěvky: 25519
Registrován: 21 črc 2006, 00:00
Bydliště: skoro Brno
Kontaktovat uživatele:

#2 Příspěvek od ZdenekHQ »

Nebude to třeba tím, že nezapojenej pin je z principu v LOG1, čili přivedením napětí se nic nezmění ?
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

#3 Příspěvek od bluepatch »

No to sem si rikal taky jestli sem to neprohodil.. ale v pic simulatoru to jede, to je jedna vec. Ono to v realu zapnu a zacne to po sekundach hazet jednicky..takze by to mohlo byt prohozeny, ale po privedeni napeti to neprestane..
Uživatelský avatar
Mendor
Příspěvky: 223
Registrován: 16 dub 2008, 00:00
Bydliště: Kladno

#4 Příspěvek od Mendor »

Celý porta máš nastaven jako A/D vstup, Nastav ANSEL = 0;
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

#5 Příspěvek od bluepatch »

To jsem mel taky a stejne to neslo..potom sem googlil a v jednom foru sem nasel: ANSEL = 0 makes the I/O digital
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

#6 Příspěvek od bluepatch »

jeste jeden dukaz z datasheeetu:

bit 7-0 ANS<7:0>: Analog Select bits
Analog select between analog or digital function on pins AN<7:0>, respectively.
1 = Analog input. Pin is assigned as analog input(1).
0 = Digital I/O. Pin is assigned to port or special function.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek od Andrea »

Co furt řešíš, vždyť ti to Zdenda už řekl. Na nezapojeném pinu je log.1, když ho připojíš na 5V, tak tam taky bude log.1, takže ho uzemňuj, tím tam uděláš log. 0 a přestane to vysílat.
Uživatelský avatar
Bernard
Příspěvky: 3654
Registrován: 27 kvě 2005, 00:00

#8 Příspěvek od Bernard »

Omluvte o/t, ale tohle mě překvapilo, že zas vidím "goto" v programu. Po skončení éry bejziků se to považovalo za téměř smrtelný hřích. Tak jestli ten come-back nebude tím všeobecným úpadkem mravů. :(
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#9 Příspěvek od rnbw »

Tu je to prasacina ako hrom, ale obcas sa to pouziva.
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

#10 Příspěvek od bluepatch »

Dobry, diky..bylo to tim, ale vecer uz sem to nemoh zkusit.. Vim ze goto je prasarna, ale tohle je jen testovaci program a timto jsem to nejrychleji zacyklil..

Btw, odpoved na moji otazku s propojenim dvou pinu 'natvrdo' nikdo nevi? Dik.
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#11 Příspěvek od rnbw »

Neviem, o co je to rychlejsie ako toto:

Kód: Vybrat vše

while (1) {
        something();
}
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#12 Příspěvek od Atlan »

goto skor najskor pretecie zasobnik...spravit to na PC tak sapadne win..teda teoreticky.....
Uživatelský avatar
rnbw
Příspěvky: 37416
Registrován: 21 bře 2006, 00:00
Bydliště: Bratislava

#13 Příspěvek od rnbw »

:?:
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#14 Příspěvek od Andrea »

bluepatch píše:Btw, odpoved na moji otazku s propojenim dvou pinu 'natvrdo' nikdo nevi? Dik.

Natvrdo, zkus tvrdou pájku milej Lojzo.
Uživatelský avatar
bluepatch
Příspěvky: 25
Registrován: 21 bře 2010, 00:00
Bydliště: Ledeč nad Sázavou/Brno
Kontaktovat uživatele:

#15 Příspěvek od bluepatch »

a jak udelam if neco, rozletuj spoj ? hmhm
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“