Problema con il programma pic [SOLVED].

E

Eraser

Guest
Ho costruito questo programma, in C, questo è un pingpong condotto, su 16f877a pic, ma il lavoro doesnt programma al 100%, la mossa LED per un lato e ritorno dont, e non so perché.
Qualcuno può aiutarmi??

il programma è:# include <htc.h>

int direzione = 0;

__CONFIG (XT & WDTDIS & PWRTDIS & BORDIS & LVPEN & WRTEN & DEBUGDIS & DUNPROT & Unprotect);void inittimer0 (void)
(
T0CS = 0;
T0SE = 0;
PSA = 0;
PS2 = 1;
PS1 = 1;
PS0 = 1;
TMR0 = 0;
)

void initporto (void)
(
TRISD = 0;
PORTD = 0;
Rd7 = 1;
)void interrupcoes (void)
(
T0IF = 0;
T0IE = 1;
GIE = 1;
)void main (void)
(
inittimer0 ();
initporto ();
interrupcoes ();

while (1)
(

)
)my_isr void interrupt (void)
(

if (direzione == 0)
(
T0IF = 0;
PORTD = PORTD * 10;
if (RD0 == 1)
(
direzione = 1;
)
)
altro
(
T0IF = 0;
PORTD = PORTD/10;
if (Rd7 == 1)
(
direzione = 0;
)
)
)
Last edited by Eraser il 31 luglio 2008 20:19, modificato 1 volta in totale

 
U può darci lo schema?<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
xxtigerxx ha scritto:

U può darci lo schema?<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sorriso" border="0" />
 
Non vedo quale schema di bit è destinata o come PORTD = PORTD * 10, rispettivamente PORTD = PORTD/10 in grado di generare un modello utile.

 
Ho cercato di mettere PORTD PORTD =>> = 1 e PORTD PORTD <<1, e il suo risultato lo stesso.

 
Salve!
Ho testato questo codice in Proteus.Funziona bene.Quindi questo test su hardware ur.
Spero che questo avrà successo.
Saluti.

# include <htc.h>

__CONFIG (XT & WDTDIS & PWRTDIS & BORDIS & LVPEN & WRTEN & DEBUGDIS & DUNPROT & Unprotect);

int direzione = 0;
void inittimer0 (void)
(
T0CS = 0;
T0SE = 0;
PSA = 0;
PS2 = 1;
PS1 = 1;
PS0 = 1;
TMR0 = 0;
)

void initporto (void)
(
TRISD = 0;
PORTD = 0;
Rd7 = 1;
)void interrupcoes (void)
(
T0IF = 0;
T0IE = 1;
GIE = 1;
)void main (void)
(
inittimer0 ();
initporto ();
interrupcoes ();

while (1)
(

)
)my_isr void interrupt (void)
(

if (direzione == 0)
(
T0IF = 0;
PORTD PORTD =>> 1;
if (RD0 == 1)
(
direzione = 1;
)
)
altro
(
T0IF = 0;
PORTD = PORTD <<1;
if (Rd7 == 1)
(
direzione = 0;
)
)
)

 
Ci dispiace per la mia ignoranza, ma qual è il proteo?

 
Quote:

Ci dispiace per la mia ignoranza, ma qual è il proteo?
 
ohh

PORTD = PORTD <<1;??

non fare in questo modo

utilizzare una variabile per spostare in PORT

per esempio:

unsigned char c = 80;PORTD = c>> i;Pallav Aggarwal
Simpaltechnologies, India

 
namqn ha scritto:Eraser ha scritto:

Il programma funziona già.
Grazie.
 

Welcome to EDABoard.com

Sponsor

Back
Top