matakpan na nakabatay sa programa para sa pic16f877

B

bluemonday

Guest
hi ..ako ginagamit ang code na ito sa programa ng aking mga pic ..
hindi linagdaan int adc_value;

magpawalang-bisa pangunahing () (
ADCON1 = 0x80; / / configure ang analog inputs at Vref
TRISA = 0xFF; / / PORTA ay input
TRISB = 0x3F; / / Pins RB7, RB6 ay outputs

Usart_Init (115,200);

gawin (
adc_value = Adc_Read (2); / / Kumuha ng mga resulta ng AD conversion
Usart_Write (adc_value);
Delay_us (200);
) Habang (1);
)

ako cant kumuha ng isang tumpak na sampling ..maaari kahit sino tumulong ako sa ito ..ako magkulang sa gumamit ng isang interruput base timer para sa mga ito ngunit im dont alam kung paano ..plz tumulong ako ..kahit sino na nakakaalam ..plz sabihin ako may ur code ..

 
hi,

ako sa tingin ur gamit mikroc compilermagpawalang-bisa-abala ()
(
kung (PIR1.TMR1IF)
(
/ / ilagay ur code dito
PIR1.TMR1IF = 0; / / malinaw TMR1IF
)

)
magpawalang-bisa init_timer ()
(
TMR1L = 0;
TMR1H = 0;
T1CON = 0x31;
PIR1.TMR1IF = 0; / / malinaw TMR1IF
PIE1 = 1; / / paganahin interrupts
INTCON = 0xC0;
)

u maaari magpasimula timer gamit ang function na init_timer ()
kapag ang timer overflow nangyayari, ang function-abala () ay awtomatikong tinatawag na

 
din maaari mong gamitin ang "espesyal na kaganapan" ng module CCP ...maaari mong basahin ito sa datasheet (paumanhin, i don `t matandaan kung ang 877 at ang 877A na ang module na ito ...) na dapat mong baguhin ang ccpr2 halaga para sa iyong sariling mga pangangailangan ...(Ko na lang binago at lumang program upang post dito ....)( ito nagtrabaho iba-iba rin para sa akin ...)

magpawalang-bisa-abala (walang laman)
(
kung (PIR2.CCP2IF)
(
PIR2.CCP2IF = 0;
Usart_write (ADRESH);
)
)

magpawalang-bisa pangunahing (walang laman)

(
TRISA = 0xEF; / / o isang bagay na mas ...
TRISB = 0;
TRISD = 0;
PORTB = 0;
PORTD = 0;
Usart_Init (115,200);
ADCON0 = 0b01000001; / / ADC setting
ADCON1 = 0x04;
T1CON = 0; / /
CCPR2H = 0x04;
CCPR2L = 0xE2; / / FS = 800Hz = 1/1250us
TMR1H = 0; / /
TMR1L = 0; / /
CCP2CON = 0x0B;
PIR2.CCP2IF = 0;
PIE2.CCP2IE = 1;
INTCON.PEIE = 1;
INTCON.GIE = 1;
T1CON.TMR1ON = 1;
ADCON0.GO = 1;

habang (1)
(
/ / ilagay sa isang bagay na mas dito .....
)
)

 
Suriin ang datasheet at magbayad pansin Tad ang salitang ''

 
ako haver basahin ang data sheet at mga hakbang na ito ay dapat na ginawa sa isang A / D ng conversion:

1.i-configure ang A / D module:
2.i-configure na A / D-abala:

malinaw ADIF bit
set ADIE bit
set PEIE bit
set GIE bit
3.maghintay para sa pagkuha ng panahon
4.simulan cpnversion

set GO / Tapos na bit (ADCON0)

5.maghintay para sa A / D ng conversion upang makumpleto, sa pamamagitan ng alinman sa:

ng botohan para sa GO / Tapos na bit na nabura (w / interrupts pinagana) O
naghihintay para sa A / D-abala

ako malaman kung paano gumawa ng hakbang 1 ..datapuwa't im hindi ka sigurado kung ano ang gagawin para sa susunod na mga hakbang ..Maaari ninyo bang ipaliwanag sa akin kung mayroon ka ng oras ..ang inyong tulong ay lubos na namin appreciated ..Thnx a lot ..Added 7 pagkatapos ng ilang minuto:at din ..ako magkulang sa ihatid ang ADRESL ..paano ko na?Added matapos ang 10 minuto:at din ..CCPR2h = 0x04
CCPR2L = 0xE2

Maaari bang pakipaliwanag pa ito kung bakit mo ilagay ang mga halaga na ito?

 

Welcome to EDABoard.com

Sponsor

Back
Top