20-02-2011, 11:27 PM
(Seda postitust muudeti viimati: 20-02-2011, 11:31 PM ja muutjaks oli felch.)
Õhtast!
Tekkis ootamatu probleem selle kiviga - A/D muundi näitab aiateibaid. Huvitav on see, et simus ei lõpeta ta kunagi mõõtmist. Maketil võtab muundamine umbes 18 us ja tulemus on enam kui kahtlane (kõigub 0..max).
Lugesin DS-i igat pidi aga ei saa pihta - justkui oleks kõik õige. Mida ta paganas siis tahab? Kas ehk on mingi seade, mida A/D lõigus ei mainita aga on kusagil mujal kirjas?
Kvarts on 16 MHz, sellest teen kivi PLL'iga 48 MHz prose taktiks (max lubatav!). ADC takt on Fosc/64 mis on ka lubatav. Taqu= Tad/4.
Kivi konf:
Muide, konfibitt "CONFIG CFGPLLEN = ON" on imelik, progeja näitab sed kui OFF. Kui sundida ON-seisu, käib prose tunduvalt aeglasemalt ehk siis on vist reaalselt OFF !? Pogeja on ASIX Presto. Viimane saadav update on peal!
Prose initis seisab:
Hakkan muundama:
Siit edasi simus ei jõuta kunagi.
Ma...ei saa enam pihta...
Tekkis ootamatu probleem selle kiviga - A/D muundi näitab aiateibaid. Huvitav on see, et simus ei lõpeta ta kunagi mõõtmist. Maketil võtab muundamine umbes 18 us ja tulemus on enam kui kahtlane (kõigub 0..max).
Lugesin DS-i igat pidi aga ei saa pihta - justkui oleks kõik õige. Mida ta paganas siis tahab? Kas ehk on mingi seade, mida A/D lõigus ei mainita aga on kusagil mujal kirjas?
Kvarts on 16 MHz, sellest teen kivi PLL'iga 48 MHz prose taktiks (max lubatav!). ADC takt on Fosc/64 mis on ka lubatav. Taqu= Tad/4.
Kivi konf:
Kood:
errorlevel 0,-305,-302
INCLUDE "P18F47J53.INC"
INCLUDE <MATHVARS.inc>
;**** Prose konfi (ropud :) sõnad ****
CONFIG XINST=OFF, STVREN=OFF, WDTEN=OFF, PLLDIV = 4 ; extended käsustik OFF, Stack Overflow/Underflow Reset: OFF, Ftakt=16 MHz (kvarts)
CONFIG CFGPLLEN = ON;FF ; PLL sees
CONFIG CPUDIV = OSC1 ; No CPU system clock divide
CONFIG OSC = HSPLL ; HS+PLL, USB-HS+PLL
CONFIG SOSCSEL = RESERVED ; T1 gener - Reserved
CONFIG CLKOEC = OFF ; CLKO output disabled on the RA6 pin
CONFIG RTCOSC = INTOSCREF ; RTCC uses INTRC
CONFIG CP0 = OFF ; koodimälu kaitseta
CONFIG IESO=OFF, FCMEN=OFF
CONFIG WDTPS=32768
CONFIG DSWDTPS=32, DSWDTEN=OFF,DSBOREN=OFF
CONFIG IOL1WAY = ON ; The IOLOCK bit (PPSCON<0>) can be set once
CONFIG ADCSEL = BIT12 ; 12 - Bit ADC Enabled
CONFIG LS48MHZ = SYS48X8 ; System clock at 48 MHz USB CLKEN divide-by is set to 8
Muide, konfibitt "CONFIG CFGPLLEN = ON" on imelik, progeja näitab sed kui OFF. Kui sundida ON-seisu, käib prose tunduvalt aeglasemalt ehk siis on vist reaalselt OFF !? Pogeja on ASIX Presto. Viimane saadav update on peal!
Prose initis seisab:
Kood:
;*******************************
bsf OSCTUNE,PLLEN ; See lollakas tahab siitkaudu PLLi sisse lülatamist...vist
bsf OSCTUNE,INTSRC ; 31.25 kHz device clock derived from 8 MHz INTOSC source (divide-by-256 enabled)
movlw 0x74
movwf OSCCON
clrf STATUS ; nullime kõik võimaliku
clrf INTCON
clrf PIR1
clrf PIR2
clrf PIR3
clrf PIE1
clrf PIE2
clrf PIE3
; **** üldkonf ****
movlw 0x00
movwf INTCON2 ; pull-up takid OHV, reageerib langevatele frontidele
movff WREG,PMCONH ; paralleelport OHV
movff WREG,PMCONL
movff WREG,PMMODEH
movff WREG,PMMODEL
movff WREG,PMEH
movff WREG,PMEL
;---- kell -----------------------
movlb 0x0F ;RTCCFG is banked
movlw 0x55
movwf EECON2
movlw 0xAA
movwf EECON2
bsf RTCWREN,RTCCFG
movlw 0xB3 ; kell sees, lubame väärtusi kirjutada, loeme alati õigesti :)
movff WREG,RTCCFG
movlw 0x00 ; kal. koef 0
movff WREG,RTCCAL
movlw 0x04 ; kella takt sisemine, PMP kasutab Šhmidti puhvreid
movff WREG,PADCFG1
movlw 0x55 ; luckku tagasi
movwf EECON2
movlw 0xAA
movwf EECON2
bsf PPSCON,IOLOCK ; write protect ON
movlb 0x00
; **** A/D ****
movlw v_bat ; mõõdame AN5 (toide), muundi tööle ja stopp.
movwf ADCON0
; movlw 0xBD
; movff WREG,ADCON1 ; paremale, 20 Tad, F/16
movlw 0x96 ; 1001 0110 B'10000110';0xBE;
movff WREG,ADCON1 ; paremale, 4 Tad, F/64
movlb 0x0F ;
movlw 0x03
movff WREG,ANCON0 ; AN2,3,4,5,6,7 on analoogsisendid
movlw 0x9D
movff WREG,ANCON1 ; bangap ref. ON, AN9 on analoogsisend
movlb 0x00
Hakkan muundama:
Kood:
; *************************************************************************************************************
; *** A/D muundamine: mõõdab ja keskmistab 8 korda ************
; *************************************************************************************************************
Read_ADC: movlw .8
movwf ADCcount
clrf ADCtempH
clrf ADCtempL
bsf LEDS
Read_ADC1: bsf ADCON0,GO
Read_ADC2: btfsc ADCON0,GO
goto Read_ADC2
bcf LEDS
bcf PIR1,ADIF
bcf CARRY
movf ADRESL,W
....
Ma...ei saa enam pihta...