Mahoney: Pravda, dostal to zadarmo. Víc jsem nezkoumal, odmítám luštit nastavení registrů z HEXu, to krutě nesnáším.
Já sám jsem se s tím pěkne zadrbal než jsem A/D rozchodil u těhle PIC24, ale dsPIC byl horší. Ale je to společně s dsPIC moje nejoblíbenější rodina. Na PIC24FJ64GA306 mám postavený speciální PLC.
Já jsem to spočítal tušímže 1us na TAD, ale nejkratší TAD je v Electrical specifiations v konkrétním datasheetu.
No, pro mě zde bylo trochu překvapení už to, že má ADC nějaký buffery, ovšem když si člověk uvědomí že to dělá až 500 ksps tak to asi význam má. Jinak tak daleko (el. specs) jsem se v datasheetu ohledně ADC nedoscrolloval, to přiznávám, ale mrknu se, ať neumřu blbej. Hledal jsem jen v sekci s ADC, v el. spec. hledat časy převodů mě prostě nenapadlo. Dík za tip.
Že se ti líbí se nedivím, co jsem se tak díval tak jsou skutečně už promyšlenější, mě například asi přijde vhod integrovanej plnohodnotnej řadič přerušení (kterej microchipí osmibity nemají, a třeba i “obyčejná blbá” základní ATmega8 od bývalé konkurence ho má), tedy až se s tím vším pro začátek nějak popasuju.
Ano, napsal jsem blbě tu příponu, .inc je to v ASM, ale myslel jsem samozřejmě soubor s definicemi ohledně hardwaru (MCU) které se připojují při překladu, tedy zde .h soubory. Mám pocit že jsem kolem toho kdysi hledal a našel jsem jen nějaký kompilovaný, ale pro programátora jě někdy důležitý si to přečíst “na vlastní oko”, proto se na to ptám jestli náhodou nevíš (dřív než to nainstaluju, abych věděl jestli to mám vůbec instalovat, nebo jít rovnou na starší C30, o kterým ovšem vím že “lidsky čitelné” definice má).
Dakujem Billy Bob Bean moc za odpoved. Ja sa v kanaloch atd este zatial nevyznam. Mohol by si, prosim ta, napisat ako ma ten kod vypadat?
Bol by som ti strasne moc vdacny.
Zde nebývá příliš zvykem rozdávat instatní řešení jako někde na arduino fóru, pokud tedy očekáváš tohle. Je třeba vynaložit trochu vlastní snahy. O to víc tě pak bude těšit až to rozjedeš - dokázal jsi to sám, a taky tě to o to víc posune dále.
Zřejmě něco přehlížíš, ovšem když to nejde jedním způsobem, tak to musí jít jiným, není-liž pravda? Co třeba vrátit si kód do původního stavu a přepojit potenciometr na AN0 (a ledku jinam) například, když na něj je všechno v původním kódu nastavené - to jsi zkoušel? Nebo ten program zjednodušit až na dřeň, tedy převodník samotný a regulaci led si tam přidat až ve chvíli, kdy budeš mít ten ADC na jistotu rozjetý?
Já se k tomu (svému hardwaru) dostanu nejdříve v pátek, ale nemůže to být zas kdovíjak těžké, dělali to lidé a pro lidi, ne pro kybernetické mozky. Podle tvého webu nepůsobíš jako nějaký noob, takže určitě máš dost zkušeností na to abys věděl, že je ještě dost brzo na házení flinty do obilí.
No, dokázal jsi mě namotivovat abych konečně nějakej ten PIC24 vytáhnul, když už je tu léta mám v šuplíku takže zkouším zkouším - C30 jsem si nainstaloval už včera, teď zrovna jsem ve stádiu hledání nějakého vhodného potenciometru, jinak to mám zapojený a připravený už komplet.
Když už jsme u zapojování, tak jen tak pro jistotu - ten 10 μF kondík na VCAP/VDDCORE máš nějakej schopnější? Měl by totiž být LowESR, takže nějaká obyčejná čína by nemusela stačit ( má mít ESR < 5 Ω). Ten vnitřní měnič napájí celý jádro MCU, takže když nepojede pořádně tohle, tak ti nepojede nic
Přerušení funguje, na debug ledce jsem viděl že to tím úsekem proběhlo. Zrovna si s tím takhle taky hraju (to měnění hodnot ručně; jinak abych někoho nezmátl - debug ledku jsem si přidal sám, na RB6).
ADC - měl jsem zato, že je zapnutý tím IEC0bits.AD1IE = 1, ale jak tak na to koukám tak nejspíš ne, asi máš pravdu. Co jsem ale zjistil já je, že onen T3, který se na začátku nastavuje, nemá žádný interrupt handler jestli dobře vidím. Ten časovač je tam zbytečně, tedy pokud se bavíme jen o změně rychlosti blikání led. Jinak hodnoty z ADC v long, čekačky ovšem v int, přepočet prapodivnej (hlavně teda u tý “delay_us”). Jinak nejsem žádnej velkej Céčkař, ale vidím dobře, že se někdo snaží nacpat 1000 DEC do Int proměnný?
Diallix: Místo bitu SAMP zapnout spíš hned vedle bit ASAM, což? Jak to vidíš? Nepíšeš, do jaký části programu jsi to vkládal…
Jj, to už mi došlo. Mě to s tím AD1CON1bits.ADON a ASAM = 1 funguje jak má, jen je třeba se pořádně podívat na ty čekačky a jak se to tam (debilně) vkládá a počítá. Když mám poťák skoro u země (asi 1mm běžcem na dráze od kraje, odhadem na ruce a osce), tak mi to bliká asi v dvacetisekundovým intervalu. Když zvednu, trvá to věky => upravit typy proměnných a přepočet.
Edit: Aha, no vida, to jsem si neověřil, přiznávám (ten Int). Já jdu od osmibitů, měl jsem zato že je osmibitovej Nicméně platí co píšu, jede to, je třeba si upravit počty.
Edit2: Ještě teda radši celej kód, ať zas nejsou zmatky:
Edit3: Kód jsem zase odebral, po obědě a úpravě hodnot zjištěno, že sice už čteme periodicky z ADC, ale nějaký hausnumero bůhvíodkud a ne hodnotu z poťáku (na kterej to nereaguje, proto to trvá tak dlouho). Bez debuggeru i serial portu se fakt blbě ladí
No to můžu, ale byl bych radši kdyby ten kód napřed pořádně fungoval. Dej mi ještě nějakej čas, nemám jak debuggovat a musím si nějak poradit, value z ADC se fakt blbě zobrazuje na jedný ledce a tenhle typ ADC je pro mě novinka, musím si to nějak ošahat.