Prosím vás umí tady někdo programovat v C, potřeboval bych poradit s analogovejma vstupama u 12F675 prosím děkuji.
administrator: příspěvek byl přejmenován z "Začínám v C pro PIC"
Prosím vás umí tady někdo programovat v C, potřeboval bych poradit s analogovejma vstupama u 12F675 prosím děkuji.
administrator: příspěvek byl přejmenován z "Začínám v C pro PIC"
Tak napiš co přesně potřebuješ.
Pro začátek bi se mi hodilo pár rad jak se používá A/D převodník, podle datasheetu sem si ho nastavil ale jak sním pracovat jestli něco ukládat, kam ukládat, mám to bez zobrazování bez LCD, dá se zjistit nebo nějak odvodit obsah výsledku převodu A/D převodníku? Dík předem.
Pokud je referenční napětí připojeno k vnitřnímu napájení 5V, tak platí že v rozmezí napětí 0-5V na vstupu AD (třeba pomocí potenciometru) se bude měnit výstupní hodnota AD převodníku v rozmezí 0-1023. Pokud tedy pustíš na vstup AD 2,5V , bude mít převodník hodnotu 512. Tyto hodnoty se dají zobrazit na LCD, nebo porovnat s nějakou konstantou a podle výsledku třeba zapnout nebo vypnout LED, většinou se nikam neukládají. Pokud budeš potřebovat měřit větší rozsah napětí, musíš použít na vstupu dělič napětí.
Tady je příklad mého podprogramu pro načtení AD vstupu, používám „SourceBoost IDE a BoostC C compiler“
int adc ( char an, char cy )
{
int ad, af = 0; char i;
for ( i=1; i<=cy; i++ )
{
ad = 0; adcon0 = an; delay_10us (10);
set_bit ( adcon0, GO );
while ( adcon0 & 4 );
ad = adresh;
ad<<= 8;
ad += adresl;
af += ad;
}
return af;
}
Příkazem : napeti = adc (ad1, 1);
se do proměnné „napeti“ uloží jeden vzorek z AD převodníku.
ad1 je číslo pinu pro AD vstup a 1 je počet nabraných vzorků.
Velice dobré, jen ještě malá maličkost jsem začátečník … nadějný a zatím znám jen if, else, while, DelayMs, return. Měl jsem sice půjčenou knihu C# ale ta byla moc všeobecná, neexistuje v el. podobě nějaká příručka nebo něco podobného čeho bych se mohl chytit a neotravovat stím pořád někoho. Příklad potřebuji dát dvě podnínky do příkazu if (vst1 == 1) přidat k tomu vst2 == 0 skoušel jsem to různě a nešlo mi to
Napis prosim aky kompiler pouzivas, potom by ji vedelo aj viac ludi pomoct…mozno aj ja, ked budem vediet…
používám HI-TECH PICC Compiler Release notes for v8.01PL3 mám k němu aktyvační údaje, píšu to v medu.
Jak již psal fero vypadá to že každý překladač vyžaduje jiný zápis a návod na něj by měl být v helpu každého překladače. Jaké jsou povoleny příkazy a jejich kombinace, pokud použiješ zápis pro C sice správný, ale pro překladač nepovolený, tak to při pokusu o překlad vyhodí chybu. Takže budeš muset nastudovat povolené příkazy a jejich kombinace pro daný překladač.
Jinak příklad který si uvedl by v mém případě vypadal takto:
if ( vst1 == 1 && vst2 == 0 )
v tomto případě musí být splněny obě podmínky
if ( vst1 == 1 || vst2 == 0 )
v tomto případě musí být splněna alespoň jedna podmínka