Wheel Encoder, PIC ja katkaisevat

A

alirezan

Guest
Hi all,

Olen yrittänyt käyttää pyörän kooderit minun robotti.I am using PIC18F1320 ja ohjelmoinnin C.

Käytin PIC tuottaa PWM ja aseta Siirrokset asettaa Kulkusuunta.I liitteenä pyörän kooderi laitteiston (joka toimii vain sakko) ja anna PIC saada katkaissut anturien nähdä eri värillä korjaustiedosto kun pyörä pyörii (käytetään PORTB nastainen muuttaa keskeyttää).

Minulla on hyvin yksinkertainen ohjelma, mutta hyvin outo ongelma.Kun simuloida vuonna MPLAB SIM se toimii hyvin.

Tässä on ongelma.Minun kooderi, valkoinen kangasmerkki luo 0 ja musta 1.Aina kun käynnistän robotti, pyörä liikkuu vain vähän ja pysähtyy.Sain selville, että koska kooderi iskee musta korjaustiedoston, se pysähtyy kokonaan.Kun puhun pyörän käsin tehdä anturi
ks. valkoinen korjaustiedosto sitten pyörä alkaa liikkua ja uudelleen, kun se iskee musta korjaustiedoston, se pysähtyy!

Onko kukaan tiedä, miksi näin tapahtuu?

Here's my code:

Kiitos

Code:/********/# pragma siru PIC18F1320 / / CC8E kääntäjään direktiivin käyttää 18F1320.H

mitätön Start_PWM (void);

mitätön Stop_PWM (void);/************************************************* ********************************************/

/ / 1 MACRO MÄÄRITELMÄT JA Vakiot /

//***********************************`/ / Logical Määritelmät:

//====================/ / PIC18F1320 Määritelmät:

//=======================

# define F_OSC 8000000 / / Taajuus (Hz) on oskillaattori (Fosc) tällä hetkellä käyttää kellon

/ / ROBOT_PIC Määritelmät:

//======================int distance_to_move;

int rotation_constant; / / olisi 1.754

int time_to_turn;

unsigned int laskuri;
# pragma alkuperä 0x8 / / Määritä missä ohjelmamuisti sijoittaa seuraava koodi

/ / (0x8 vastaa korkean Priority Interrupt Vector)

keskeyttää int_server (void) / / The keskeyttää palvelun rutiini on erityinen tehtävä.
Katso CC8E Käyttöopas for details

(

int_save_registers / / CC8E Makro tallentaa W, Tila ja BSR rekisteritif (RBIF) / / Ainakin yksi niistä RB4: RB7 on muuttunut

(

if (! PORTB.5) / / PB5 on saanut keskeyttää

(

PORTB.2 = 1;

counter ;

)RBIF = 0;)if (TMR2IF)

(

TMR2IF = 0;

)int_restore_registers / / CC8E Makro palauttaa W, Tila ja BSR rekisterit

)
/************************************************* ********************************************/

/ / MAIN FUNCTION /

//*****************`mitätön main (void)

(/ / Oscillator Initialization:

//==========================

SWDTEN = 0;

OSCCON = 0b01110000; / / Configure varten:! IDLEN, 8MHz INTOSC Taajuus, PRI_RUN virrankäyttötilassa

OSCTUNE = 0x10; / / Tämä rekisteri käyttää korvaamaan oscilator taajuus kulkeumalle virhe/ / Port A, B Initialization:

//========================

ADON = 0;

ADCON1 = 0b01111111;

TRISA = 0b10000010;

TRISB = 0b00100000;PORTA = 0x00; / / Alusta Satamat A, B 0

PORTB = 0x00;

PORTA.6 = 0;

PORTB.6 = 0;

RBIE = 1;

RBIF = 0;GIE = 1;

PEIE = 1;

Start_PWM ();while (1);

)mitätön Start_PWM (void)

(

CCP1CON = 0;

PR2 = 199; / / 249; / / 199 DC = 25%, 249 DC = 75%

CCPR1L = 49; / / 186; / / 49 DC = 25%, 186 DC = 75%

TRISB.3 = 0;

T2CON = 0x01;

CCP1CON = 0x3C;

TMR2 = 0;

TMR2ON = 1;

TMR2IE = 1;

)mitätön Stop_PWM (void)

(

TMR2ON = 0;

)/ / END OF FILE

 
Starsi użytkownicy pewnie doskonale pamiętają kultowy sprzęt audio z czasów PRL sygnowany logo Unitra, stowarzyszenia Zjednoczonego Przemysłu Elektronicznego i Teletechnicznego, łączącego pod wspólną marką produkty wielu czołowych firm z branży, jakie w ówczesnych czasach działały na naszym rynku. Zresztą Unitra produkowała prawie wszystko co miał...

Read more...
 

Welcome to EDABoard.com

Sponsor

Back
Top