SDCC PIC16F84A
+2
Risanti
aztk
6 participantes
Página 1 de 1.
SDCC PIC16F84A
No sé que pasa, pero no puedo hayarle a la forma de crear un simple programita que me permita parpadear un LED.......... he estado revisando algunos ejemplos de SDCC (que la mayoria que he encontrado son demasiados simples, y casi iguales) y aún no le entiendo.......
Principalmente, he visto http://www.freenet.org.nz/sdcc/ y del primer ejemplo, he sacado el siguiente código (he hecho modificaciones, puesto que yo uso un 16f84A en vez del 18fxx; además de que quiero usar la librería que ya existen de delays para aprender como usarlas):
Y en el Piklab obtengo los siguientes -fatales- resultados:
Por lo que veo, tengo problemas con la librería, ya he visto algunos hilos en el foro que hablad de linkear libc18f.lib, cosa que probé pero que tampoco no me furuló (igual y no supe como hacerlo).
Lo otro es que no me acepta la asignación, en las partes del estilo LED_PIN = 0; me manda errores de Structure/Union expected left of '.->'
Qué estoy haciendo mal???????????
Alguien me pueda ayudar, en dónde estoy errandola?
Datos:
OS Ubuntu 10.04
Piklab v0.15.7
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.0 #5416 (Feb 3 2010) (UNIX)
Saludos y gracias!
Principalmente, he visto http://www.freenet.org.nz/sdcc/ y del primer ejemplo, he sacado el siguiente código (he hecho modificaciones, puesto que yo uso un 16f84A en vez del 18fxx; además de que quiero usar la librería que ya existen de delays para aprender como usarlas):
- Código:
/* ----------------------------------------------------------------------- */
/* Template source file generated by piklab */
#include "pic16f84a.h"
#include "pic16/delay.h"
/* ----------------------------------------------------------------------- */
/* Configuration bits: adapt to your setup and needs */
typedef unsigned int word;
word at 0x2007 CONFIG = _HS_OSC & _WDT_ON & _PWRTE_OFF & _CP_OFF;
#ifndef LED_TRIS
#define LED_TRIS TRISB.TRISB2
#endif
#ifndef LED_PIN
#define LED_PIN PORTB.RB2
#endif
void main() {
// set pin to output
LED_TRIS = 0;
// sit in an endless loop blinking the led
for (;;)
{
LED_PIN = 0;
delay1ktcy(80); // 80*1000 cycles; OSC = 20 MHz; delay = 1 s
LED_PIN = 1;
delay1ktcy(80); //
}
}
Y en el Piklab obtengo los siguientes -fatales- resultados:
sdcc -mpic14 -p16f84a -V --debug -I/home/aztk-white/Pruebas/PIC/e0x00sdcc/ -c e0x00sdcc.c
delay.h:30: warning 115: unknown or unsupported #pragma directive 'library c'
+ "/usr/bin/sdcpp" -nostdinc -Wall -I"/home/aztk-white/Pruebas/PIC/e0x00sdcc/" -obj-ext=.o -DSDCC_MODEL_SMALL -DSDCC=290 -DSDCC_REVISION=5416 -DSDCC_pic14 -D__pic14 -DSDCC_PROCESSOR="16f84a" -isystem "/usr/bin/../share/sdcc/include/pic14" -isystem "/usr/share/sdcc/include/pic14" -isystem "/usr/bin/../share/sdcc/include" -isystem "/usr/share/sdcc/include" -isystem "/usr/bin/../share/sdcc/include/pic" -isystem "/usr/share/sdcc/include/pic" "e0x00sdcc.c"
delay.h:45: warning 85: in function delay1ktcy unreferenced function argument : '_delay1ktcy_PARM_1'
delay.h:48: error 159: in function delay1mtcy: name omitted for parameter 1
delay.h:48: warning 85: in function delay1mtcy unreferenced function argument : '_delay1mtcy_PARM_1'
e0x00sdcc.c:22: error 25: Structure/Union expected left of '.->'
e0x00sdcc.c:22: error 27: Pointer required
e0x00sdcc.c:27: error 25: Structure/Union expected left of '.->'
e0x00sdcc.c:27: error 27: Pointer required
e0x00sdcc.c:29: error 25: Structure/Union expected left of '.->'
e0x00sdcc.c:29: error 27: Pointer required
*** Exited with status: 1 ***
Por lo que veo, tengo problemas con la librería, ya he visto algunos hilos en el foro que hablad de linkear libc18f.lib, cosa que probé pero que tampoco no me furuló (igual y no supe como hacerlo).
Lo otro es que no me acepta la asignación, en las partes del estilo LED_PIN = 0; me manda errores de Structure/Union expected left of '.->'
Qué estoy haciendo mal???????????
Alguien me pueda ayudar, en dónde estoy errandola?
Datos:
OS Ubuntu 10.04
Piklab v0.15.7
SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.9.0 #5416 (Feb 3 2010) (UNIX)
Saludos y gracias!
aztk- Participante Activo
- Mensajes : 52
Fecha de inscripción : 08/06/2009
Edad : 36
Localización : Tenochtitlan
Re: SDCC PIC16F84A
Hola..
bienvenido al mundo de Sdcc jajajaj..
Mira este compilador es re entretenido cuando ya le tomas el ritmo..
Primero la libreria que estas usando para los retardos, es solo para pic de gama alta como 18F,
Te recomiendo que uses la siguiente libreria para los retardos..
http://www.box.net/shared/34sdbhuxly
Solo copiala en tu pc en /usr/share/sdcc/include/pic
Para usarla la defines con #include <delay.h>
despues define el cristal que estas usando #define FREQ 4000
y para retardos usas la funcion delay_ms(1000) ; // para un 1 seg de retardo por ejemplo.
Para el resto de cosas que quieras hacer solo tienes que saber como se llaman los registros internos de tu pic en sdcc, por ejemplo..
Para colocar todo el puerto b como salida. usas
si quieres encender solo en pin B1 de puerto b.
Saludos
RiSanti
bienvenido al mundo de Sdcc jajajaj..
Mira este compilador es re entretenido cuando ya le tomas el ritmo..
Primero la libreria que estas usando para los retardos, es solo para pic de gama alta como 18F,
- Código:
#include "pic16/delay.h"
Te recomiendo que uses la siguiente libreria para los retardos..
http://www.box.net/shared/34sdbhuxly
Solo copiala en tu pc en /usr/share/sdcc/include/pic
Para usarla la defines con #include <delay.h>
despues define el cristal que estas usando #define FREQ 4000
y para retardos usas la funcion delay_ms(1000) ; // para un 1 seg de retardo por ejemplo.
Para el resto de cosas que quieras hacer solo tienes que saber como se llaman los registros internos de tu pic en sdcc, por ejemplo..
Para colocar todo el puerto b como salida. usas
- Código:
TRISB=255;
si quieres encender solo en pin B1 de puerto b.
- Código:
RB1=1;
Saludos
RiSanti
AYUDA PORFAVOR :-(
Hola a todos,
Estoy empezando a trabajar con el ambiente Piklab. Ya elabore el tipico programa para el PIC16F84A, que activa la interrupcion RB0 del puerto B cada determinado tiempo, y este enciende un diodo emisor de luz.
El problema radica al momento de querer cargar el programa al micro. La manera en que estoy manejando el cargador es de forma directa. Este es el mensaje que aparece.
Memoria de dispositivo no coincide con archivo HEX (en memoria de codigo en direccion 0x0069): leido 0x3000 esperando 0x3080).
Estare infinitamente agradecido si alguien puede ayudarme a atacar este problema.
Saludos..
Euronymous
Estoy empezando a trabajar con el ambiente Piklab. Ya elabore el tipico programa para el PIC16F84A, que activa la interrupcion RB0 del puerto B cada determinado tiempo, y este enciende un diodo emisor de luz.
El problema radica al momento de querer cargar el programa al micro. La manera en que estoy manejando el cargador es de forma directa. Este es el mensaje que aparece.
Memoria de dispositivo no coincide con archivo HEX (en memoria de codigo en direccion 0x0069): leido 0x3000 esperando 0x3080).
Estare infinitamente agradecido si alguien puede ayudarme a atacar este problema.
Saludos..
Euronymous
euronymous- Nuevo Usuario
- Mensajes : 3
Fecha de inscripción : 24/12/2010
Re: SDCC PIC16F84A
hola...
Parece que es un error al momento de programar el pic. que tipo de programador usas ???..es serial, Paralelo o usb???..
Revisa primero el programador..
Saludos
RiSanti
Parece que es un error al momento de programar el pic. que tipo de programador usas ???..es serial, Paralelo o usb???..
Revisa primero el programador..
Saludos
RiSanti
Hola Risanti
Hola Risanti,
El cargador es un Quark-Pro2 y lo conecto por puerto serial.
Anteriormente estuve trabajando en MPLAB en windows XP ,,, y estuvo trabajando sin problema alguno.
Segun tengo entendido los microcontroladores PIC necesitan de una señal de 12 voltios para programarse, y esta señal es proporcionada por el serial.
La maquina en la que me encuentro trabajando es una Dell latitude x300 portatil, y cuenta con una expansion de puertos, y es alli donde se encuentra el serial donde conecto el cargador Quark-Pro2.
¿Que crees que pueda ser?
Saludos.
euronymous
El cargador es un Quark-Pro2 y lo conecto por puerto serial.
Anteriormente estuve trabajando en MPLAB en windows XP ,,, y estuvo trabajando sin problema alguno.
Segun tengo entendido los microcontroladores PIC necesitan de una señal de 12 voltios para programarse, y esta señal es proporcionada por el serial.
La maquina en la que me encuentro trabajando es una Dell latitude x300 portatil, y cuenta con una expansion de puertos, y es alli donde se encuentra el serial donde conecto el cargador Quark-Pro2.
¿Que crees que pueda ser?
Saludos.
euronymous
Risanti escribió:hola...
Parece que es un error al momento de programar el pic. que tipo de programador usas ???..es serial, Paralelo o usb???..
Revisa primero el programador..
Saludos
RiSanti
euronymous- Nuevo Usuario
- Mensajes : 3
Fecha de inscripción : 24/12/2010
Re: SDCC PIC16F84A
Hola..
si estas usando un Portatil lo mas seguro que este sea el problema, por lo general los programadores seriales no funcionan bien en algunos equipo, por el tema que dices tu que este debe entregar vpp (12V), para poder programar el pic..
Intenta probar en alguna maquina tipo escritorio.. en mi caso cuando programo usando mi laptop, uso un programador usb. ya que los seriales y parelelos me daban muchos problemas..
Saludos
RIsanti
si estas usando un Portatil lo mas seguro que este sea el problema, por lo general los programadores seriales no funcionan bien en algunos equipo, por el tema que dices tu que este debe entregar vpp (12V), para poder programar el pic..
Intenta probar en alguna maquina tipo escritorio.. en mi caso cuando programo usando mi laptop, uso un programador usb. ya que los seriales y parelelos me daban muchos problemas..
Saludos
RIsanti
Hola Risanti|
Hola Risanti,
Pues no tengo una PC de escritorio ala mano y menos con Ubuntu, pero tratare de preguntar con mis compañeros para ver si alguno de ellos cuenta con una computadora de escritorio y con Ubuntu.
Muchas gracias por la ayuda, y seguimos en contacto Risanti.
Feliz fiestas :-)
Saludos.
euronymous.
Pues no tengo una PC de escritorio ala mano y menos con Ubuntu, pero tratare de preguntar con mis compañeros para ver si alguno de ellos cuenta con una computadora de escritorio y con Ubuntu.
Muchas gracias por la ayuda, y seguimos en contacto Risanti.
Feliz fiestas :-)
Saludos.
euronymous.
Risanti escribió:Hola..
si estas usando un Portatil lo mas seguro que este sea el problema, por lo general los programadores seriales no funcionan bien en algunos equipo, por el tema que dices tu que este debe entregar vpp (12V), para poder programar el pic..
Intenta probar en alguna maquina tipo escritorio.. en mi caso cuando programo usando mi laptop, uso un programador usb. ya que los seriales y parelelos me daban muchos problemas..
Saludos
RIsanti
euronymous- Nuevo Usuario
- Mensajes : 3
Fecha de inscripción : 24/12/2010
Re: SDCC PIC16F84A
Feliz fiestas para ti =...
Espero que puedas solucionar tu problema,
Saludos
RiSanti
Espero que puedas solucionar tu problema,
Saludos
RiSanti
Re: SDCC PIC16F84A
Hola que tal, me podrian pasar la libreria delay.h para la familia 16f? ya que el link esta roto. gracias.
Rockicantoni- Nuevo Usuario
- Mensajes : 3
Fecha de inscripción : 09/09/2013
Re: SDCC PIC16F84A
Por favor! yo tambien lo necesito y tambien necesitaria saber como agregar esta libreria.Rockicantoni escribió:Hola que tal, me podrian pasar la libreria delay.h para la familia 16f? ya que el link esta roto. gracias.
ivancoronel9- Nuevo Usuario
- Mensajes : 5
Fecha de inscripción : 09/10/2013
Localización : Merlo, Buenos Aires, Argentina
Re: SDCC PIC16F84A
Este es el link para descargar las librerias de SDCC para PIC14
saludos
https://app.box.com/s/u65exv5rjfo7w7sbkzjm
saludos
https://app.box.com/s/u65exv5rjfo7w7sbkzjm
maigke- Asiduo del Foro
- Mensajes : 210
Fecha de inscripción : 12/04/2009
Edad : 47
Localización : Mexico
Temas similares
» Programar pic16f84a
» Libreria LCD 4Bit , para Pic16f
» SDCC 3.0 Disponibleeeeee
» SDCC - NF....
» SDCC USB libreria
» Libreria LCD 4Bit , para Pic16f
» SDCC 3.0 Disponibleeeeee
» SDCC - NF....
» SDCC USB libreria
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.