PIC 16f887 - Problema asignación puerto y bit individual
2 participantes
Página 1 de 1.
PIC 16f887 - Problema asignación puerto y bit individual
Buenas noches.
Soy nuevo en el desarrollo sdcc en linux y estoy teniendo un problema.
Estoy trabajando con:
La cuestión es que obtengo diferentes resultados escribiendo PORTA o RAx.
Si escribo:
Leo las salidas del pic y se escriben correctamente.
En cambio si escribo
Obtengo una salida sólo en RB3.
¿Qué puede ser lo que está pasando?
Gracias
Fernando
Soy nuevo en el desarrollo sdcc en linux y estoy teniendo un problema.
Estoy trabajando con:
- xubuntu 14.04
- piklab 0.16.2
- sdcc 3.3.0
La cuestión es que obtengo diferentes resultados escribiendo PORTA o RAx.
Si escribo:
- Código:
/* ----------------------------------------------------------------------- */
/* Plantilla generada por Piklab */
#include <pic16f887.h>
/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
typedef unsigned int word;
word __at _CONFIG1 CONFIG1 = _HS_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF;
word __at _CONFIG2 CONFIG2 = _BOR40V & _WRT_OFF;
void isr() __interrupt 0 { /* rutina de servicio de interrupciones */
/* << agregue el código de interrupción >> */
}
void main(void)
{
TRISB = 0x00;
PORTB = 0b00001010;
while(1) {
}
}
Leo las salidas del pic y se escriben correctamente.
En cambio si escribo
- Código:
/* ----------------------------------------------------------------------- */
/* Plantilla generada por Piklab */
#include <pic16f887.h>
/* ----------------------------------------------------------------------- */
/* Bits de configuración: adapte los parámetros a su necesidad */
typedef unsigned int word;
word __at _CONFIG1 CONFIG1 = _HS_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_ON & _IESO_OFF & _FCMEN_OFF & _LVP_OFF & _DEBUG_OFF;
word __at _CONFIG2 CONFIG2 = _BOR40V & _WRT_OFF;
void isr() __interrupt 0 { /* rutina de servicio de interrupciones */
/* << agregue el código de interrupción >> */
}
void main(void)
{
TRISB = 0x00;
PORTB = 0X00;
RB1 = 1;
RB3 = 1;
while(1) {
}
}
Obtengo una salida sólo en RB3.
¿Qué puede ser lo que está pasando?
Gracias
Fernando
fpalena- Nuevo Usuario
- Mensajes : 2
Fecha de inscripción : 09/05/2014
Re: PIC 16f887 - Problema asignación puerto y bit individual
Revisé y no es el sdcc. El código asembler es correcto, el problema debe ser al linkear.
¿A alguien se le ocurre cuál puede ser el problema?
Saludos
Fernando
¿A alguien se le ocurre cuál puede ser el problema?
Saludos
Fernando
fpalena- Nuevo Usuario
- Mensajes : 2
Fecha de inscripción : 09/05/2014
Re: PIC 16f887 - Problema asignación puerto y bit individual
Aunque ya es el antiguo no esta de mas hacer la observación que no estas haciendo el cambio entre bancos para hacer los ajustes del registro de los puertos, por ejemplo:
RP0=1;
RP1=0;
esto es obligatorio en ensamblador pero no se si también sea obligatorio en SDCC
RP0=1;
RP1=0;
esto es obligatorio en ensamblador pero no se si también sea obligatorio en SDCC
EdgarRobles- Nuevo Usuario
- Mensajes : 2
Fecha de inscripción : 12/12/2015
Temas similares
» Problema con asignacion de RAM SDCC o GPUTILS???
» Ayuda para añadir pics para simular en Ktechlab.
» puerto USB (V-USB) en AVR
» manejo del puerto serie con Python
» Entradas salidas puerto A [Solucionado]
» Ayuda para añadir pics para simular en Ktechlab.
» puerto USB (V-USB) en AVR
» manejo del puerto serie con Python
» Entradas salidas puerto A [Solucionado]
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|