A/D převodník
Moderátor: Moderátoři
A/D převodník
- serviceman
- Příspěvky: 4093
- Registrován: 09 črc 2013, 00:00
Na microchip.com najdeš hromadu aplikačních poznámek, videa, fórum atd.
http://ww1.microchip.com/downloads/en/DeviceDoc/31023a.pdf
Laicky řečeno, nastavíš vstupy jako AD, nastavíš registry pro AD, odstartuješ převod nahozením bitu, počkáš nějakou dobu, nebo cyklicky vyčítáš bit GO/DONE (nebo tak něco), poté vyčteš 8 nebo 10bit výsledek.
Každopádně to chce nejprve získat určitou zručnost s mini úlohami jako je blikání LED, atd.
Zapsat a vyčíst flash paměť ti funguje? Vyzkoušej si zapsat a vyčíst nějaký hex soubor a pak porovnat obsahy, zda jsou stejné.
Chce to zpočátku hodně trpělivosti. Program žádný nemám, ale třeba tady jsou komentované programy.
http://talkingelectronics.com/html/PIC-for-Beginners.html
Kód: Vybrat vše
Nastaveni:
BCF STATUS,RP1 ;
BSF STATUS,RP0 ;BANKA1
MOVLW 0X07 ;00000111
MOVWF CMCON ;NASTAV REG. CMCON NA 07h
MOVLW 0X0E ;00001110 // AD PREVOD BUDE POUZE NA RA0 (AN0)
MOVWF ADCON1 ;NASTAV REG. ADCON1
MOVLW dle potřeby ;
MOVWF OPTION_REG ;NASTAV OPTION_REG NA HODNOTU Z W
MOVLW dle potřeby
MOVWF INTCON ;NASTAV INTCON NA HODNOTU Z W
BCF STATUS,RP0 ;BANKA0
MOVLW 0X40 ;01000000 // PROZATIM AD VYPNUTY
MOVWF ADCON0 ;NASTAV REG. ADCON0
=========================================
Cteni AD vstupu:
BSF ADCON0,ADON ;ZAPNUTI AD PREVODNIKU // VSE OSTATNI JE JIZ NASTAVENO JAKO IMPLICITNI NASTAVENI PRI STARTU PROGRAMU
BSF PCLATH,4 ;STRANKA PROGRAMU
BCF PCLATH,3 ;STRANKA PROGRAMU 2
CALL CEK40 ;NABIJ DOSTATECNE VZORKOVACI KONDENZATOR - 50us PO OTEVRENI VSTUPU ANx
CLRF PCLATH ;STRANKA PROGRAMU 0
BSF ADCON0,GO ;ZACNI AD PREVOD
BTFSC ADCON0,GO ;PROBIHA AD PREVOD?
GOTO $-1 ;ANO, CEKEJ
BCF ADCON0,ADON ;NE, VYPNI AD PREVODNIK A POKRACUJ DALE
;***************************
;ZPRACOVANI VYSLEDKU AD PREVODU NA AN_0
MOVF ADRESH,W ;NAHRAJ VYSLEDEK AD PREVODU DO W
RETURN
Zde jsem používal pouze vrchních 8 bitů z převodníku.
Config word:
Pokud používáš MBlab tak v menu "Configure" --> "Configuration bits" můžeš nastavit config aniž bys jej zadával přímo do projektu jako __CONFIG ... . Musíš ale odškrtnou to zatržítko nahoře. Při zaškrtnutí to v kodu musíč mít uvedené, zde se pak ukáže pouze nastavení ale bez možnosti změny. Tím to můžeš zkontrolovat.
No tak kousek kódu i config word tu máš, ale bez prostudování DS - alespoň zmíněných pasáží, kde se mluví o registrech použitých v "kouscích kodu" je ti to stejně na nic.
- Přílohy
-
Config_word.png- (18.11 KiB) Staženo 63 x
Každý pořádný programovací adaptér po programování ještě provede "verify" což je ono porovnání. Jestli máš Pickit, ten by měl být v pohodě
PS. Pozor u PICů na fenomén "banksel" a "pagesel", což může člověku občas zamotat hlavu
MPLAB má simulátor, napiš si primitivní smyčku a krokuj to v simulátoru. Tak získáš přehled, co která instrukce dělá. Instrukce si vytiskni a měj po ruce. Pozor některé registry mají např. banku1, tj. pokud tam chceš zapisovat, tak se do té banky musíš přepnout, zapsat a pak obvykle přepnout zpět do banky0 .
Anebo přejdi na Atmel, ten žádné banky nemá...