Jak se dostat externí signál v PIC?

B

boncker

Guest
Kluci, jsem implementoval kód v C (CCS kompilátor) získat čtvercový signál v pinu C6 a rozdělit jej na 100. Viz níže uvedený kód: smyčka: if (vstup (pin_c6)) / / pokud je na vysoké úrovni z náměstí signálu (1 kHz) {delay_us (600), / / ​​počkat 600us na náměstí signál jít na LOW úrovni x + +; / / zvýšení 'x' if (x == 100) / / pokud "x" je ze 100 {output_high (pin_a0) / / vysoké úrovni, na čepu A0}} Ale v mém hardware, nemohu mít kolík A0 na vysoké úrovni . Může někdo dát mi pomoci? Díky! goto loop;
 
Dobrý den, pokud vaše pripojení je to pravda. kravatu MCLR na VCC? osilator fungovat správně? prosím vysvětlit více.
 
Prosím, dejte nám vědět všechny # Pojistky, které jste použili v programu a také PIC, se kterým pracujete ... To nám pomůže zjistit nějaký softwarový problém. S pozdravem, Ric
 
Ahoj kluci, oscilátor pracuje v pořádku a MCLR přijímá Vcc. Viz níže na # Pojistky: Č. pojistky XT, NOWDT, NOPROTECT, PUT, zahnědnutí a NOLVP a NOCPD a NOWRT Například, když jsem si tento čtverec vlny (1 kHz) na pinu C6, musím ji rozdělit na 100 a výsledek (10Hz) poslat pin A0. Díky!
 
Říkal jste, že: "Díky!", Znamená to, že to funguje teď? Myslím, že jste zapomněli udělat něco takového: if (x == 100) {..... x = 0; A0 = A0;! / / pseudo kód, nepište to, jako že jde o}, Franck.
 
Nejdříve nakonfigurovat Porta se chovat jako digitální I / O a ne analogové I / O. To vyřeší váš problém.
 
yousafzai, jsou všechny porty nakonfigurovány jako digitální I / O.
 
Prosím, dejte nám vědět, který PIC, který používáte. Pokud je to možné po celý kód by to mohlo být užitečné. Také se snaží změnit pojistku dal k NOPUT ... Už jsem měl nějaké problémy s ním v minulosti. S pozdravem, Ric
 
ric_vas jsem pomocí PIC 16F877A. Já používám na 555 generovat signál 1 kHz, ale kód níže zapsat do bloku IF, když je signál vysoké nebo nízké. Pokud používám ruční tlačítko, to funguje dobře. IF (vstup (pin_c6)) {delay_us (600) / / počkat na signál 600us jít od HIGH odst. LOW output_high odst. pin_a0);} budu měnit pojistky PUT, jak jste mi to řekl.
 
Pokud to funguje s tlačítkem možná budete mít problém na úrovni napětí. Zkontrolujte, zda v manuálu k přístroji jak (PIC a 555) a vidět to, že Mach. Pamatujte PORTC má spouštěcí Schmitt vyrovnávací paměti. Pokud je tomu můžete použít jeden nebo dva tranzistory, aby to fungovalo. S pozdravem, Ric
 

Welcome to EDABoard.com

Sponsor

Back
Top