keskeyttää perustuva ohjelma pic16f877

B

bluemonday

Guest
hi ..Olen käyttänyt tätä koodia ohjelman my pic ..
unsigned int adc_value;

mitätön tärkeimmät () (
ADCON1 = 0x80; / / Configure analogista tuloa ja Vref
TRISA = 0xFF; / / PORTA on input
TRISB = 0x3F; / / Pins RB7, RB6 ovat lähdöt

Usart_Init (115200);

do (
adc_value = Adc_Read (2); / / Hanki tulokset AD muuntaminen
Usart_Write (adc_value);
Delay_us (200);
) While (1);
)

i cant saada tarkan näytteenotto ..kukaan voi auttaa minua tämän ..Haluan käyttää interruput perustuu ajastin mutta im dont tiedä, miten ..plz auttaa minua ..joku, joka tietää ..plz minulle ur koodi ..

 
hei,

Mielestäni ur käyttäen mikroc kääntäjämitätön keskeyttää ()
(
if (PIR1.TMR1IF)
(
/ / asettaa ur code here
PIR1.TMR1IF = 0; / /
klart TMR1IF
)

)
mitätön init_timer ()
(
TMR1L = 0;
TMR1H = 0;
T1CON = 0x31;
PIR1.TMR1IF = 0; / /
klart TMR1IF
PIE1 = 1; / /
enable katkaisevat
INTCON = 0xC0;
)

u voi alustaa ajastimen avulla toiminnon init_timer ()
kun ajastin ylivuoto tapahtuu, toiminto keskeyttää () automaattisesti kutsutaan

 
Lisäksi voit käyttää "erityinen tapahtuma" yhteisen kauppapolitiikan moduuli ...voit lukea sen, että tiedot (pahoillani En muista, jos 877 ja 877A on tässä moduulissa ...) sinun pitäisi vaihtaa ccpr2 arvot omia vaatimuksia ...(I juuri muutettu ja vanhan ohjelman lähettää tästä ....)( se toimi vaihdella hyvin minulle ...)

mitätön keskeyttää (void)
(
if (PIR2.CCP2IF)
(
PIR2.CCP2IF = 0;
Usart_write (ADRESH);
)
)

mitätön main (void)

(
TRISA = 0xEF; / / tai jotain ...
TRISB = 0;
TRISD = 0;
PORTB = 0;
PORTD = 0;
Usart_Init (115200);
ADCON0 = 0b01000001; / / ADC asettaminen
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;

kun taas (1)
(
/ / ottaa jotain lisää tästä .....
)
)

 
Tarkista tekninen ja kiinnitettävä huomiota termi "Tad"

 
i Haver lukemaan käyttöturvallisuustiedote, ja nämä toimenpiteet olisi tehdään A / D-muunnos:

1.määrittää A / D-moduuli:
2.configure A / D keskeyttää:

selkeä ADIF bittinen
asettaa ADIE bittinen
asettaa PEIE bittinen
asettaa GIE bittinen
3.odottaa hankinnan aika
4.aloittaa cpnversion

asettaa GO / DONE bittinen (ADCON0)

5.odottaa A / D-muuntaa valmis, joko:

äänestyspaikkoja varten GO / DONE bittinen on selvitetty (w / katkaisevat käytössä) TAI
odottaa A / D keskeyttää

Tiedän, miten askel 1 ..mutta im ole varma mitä tehdä seuraavia vaiheita ..Voisitteko kertoa minulle, jos sinulla on aikaa ..apuasi me suuresti ..thnx paljon ..Lisätty jälkeen 7 minuuttia:ja myös ..Haluan välittää ADRESL ..Miten niin??Lisätty jälkeen 10 minuuttia:ja myös ..CCPR2h = 0x04
CCPR2L = 0xE2

Voisitteko selittää sitä, miksi saattaa tämän arvoista?

 

Welcome to EDABoard.com

Sponsor

Back
Top