A
Andrew83
Guest
Hola!
Estoy tratando de ma una aplicación multitarea.
Una de las tareas es la de recibir más de un personaje de serie y convertirlo en la cooperación en forma binaria.
El problema es este: no puedo usar el valor devuelto por bgetc () en el check_SERIAL () la función.
Estoy usando PIC18F452 @ 10 MHz y CCS versión del compilador C 4,057.
Aquí está el código:
Código:int_rda #
serial_isr void () (
int t;
output_toggle (pin_b1); / / debug
buffer [next_in] = getc ();
t = next_in;
= (next_in 1)% next_in BUFFER_SIZE;
if (next_in == next_out)
next_in = t; / / Buffer lleno!!
)BYTE bgetc () (
BYTE C;output_toggle (pin_b2); / / debug
while (! bkbhit);
c = buffer [next_out];
= (next_out 1)% next_out BUFFER_SIZE;
return (c);
)void check_SERIAL (void)
(
char i, d;if (gc_IRTRANSMIT_timer)
(
output_toggle (pin_b3);
retorno;
)
algo más(IRTRANSMIT_TIMER_TICKS gc_IRTRANSMIT_timer =;
output_toggle (pin_b4); / / debug
for (i = 0; i <8; i )
(
output_toggle (pin_b5); / / debug
if (bgetc () & 0x80)
d = '1 ';
algo más
d = '0 ';
bgetc () <<= 1;
cmd = d;
)
cmd [8] = 0;
output_toggle (pin_b6); / / debugprintf ( "% s", cmd);
)
)
Estoy tratando de ma una aplicación multitarea.
Una de las tareas es la de recibir más de un personaje de serie y convertirlo en la cooperación en forma binaria.
El problema es este: no puedo usar el valor devuelto por bgetc () en el check_SERIAL () la función.
Estoy usando PIC18F452 @ 10 MHz y CCS versión del compilador C 4,057.
Aquí está el código:
Código:int_rda #
serial_isr void () (
int t;
output_toggle (pin_b1); / / debug
buffer [next_in] = getc ();
t = next_in;
= (next_in 1)% next_in BUFFER_SIZE;
if (next_in == next_out)
next_in = t; / / Buffer lleno!!
)BYTE bgetc () (
BYTE C;output_toggle (pin_b2); / / debug
while (! bkbhit);
c = buffer [next_out];
= (next_out 1)% next_out BUFFER_SIZE;
return (c);
)void check_SERIAL (void)
(
char i, d;if (gc_IRTRANSMIT_timer)
(
output_toggle (pin_b3);
retorno;
)
algo más(IRTRANSMIT_TIMER_TICKS gc_IRTRANSMIT_timer =;
output_toggle (pin_b4); / / debug
for (i = 0; i <8; i )
(
output_toggle (pin_b5); / / debug
if (bgetc () & 0x80)
d = '1 ';
algo más
d = '0 ';
bgetc () <<= 1;
cmd = d;
)
cmd [8] = 0;
output_toggle (pin_b6); / / debugprintf ( "% s", cmd);
)
)