TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: nach en 30 de Octubre de 2007, 18:08:17
-
Hola,
Quiero utilizar el oscilador interno del 16hv616...y lo programo con ccs. Escribo esto:
---
#include <16HV616.h>
#use delay(clock=4000000)
#FUSES IOSC4
#use fast_io(A)
---
Es necesario incluir algo mas hacerca del oscilador??
Todo esto viene porque al intentar programarlo con el mplab + ICD2, todos los pasos de programacion me da correctos, el micro lo tengo en una placapruebas sin nada conectado alrededor, una R=10K de Vpp a Vss., alimentacion externa, .......pero luego el micro nunca arranca :?.... que puede pasar??
-
El comando para configurar el oscilador interno en CCS es setup_oscillator
-
En el manual de ccs lei que si pones #fuses and #use delay(internal=...) debe ser sufuiciente para el compilador...pero parece que no. Pego el codigo que programo, solo pretendo que me sace una uno por una de esas patillas pero...no funciona ni a la de tres!!! :?
:#include <16HV616.h>
#FUSES IOSC4, NOWDT, NOPUT,INTRC
#use delay(internal=4000000)
#use fast_io(A)
#byte PORTA = 0x05
#bit A0 = 0x05.0//output para abrir
#bit A1 = 0x05.1//output para cerrar
#bit A2 = 0x05.2
#bit A3 = 0x05.3//input para lectura del selector pin0
#bit A4 = 0x05.4//input para lectura del selector pin1
#bit A5 = 0x05.5
main ()
{
set_tris_A( 0b111100 );
setup_vref (FALSE);
disable_interrupts(global);
output_bit(PIN_A0,1);
output_bit(PIN_A1,1);
}
que hagi mal??
-
Más que recurrir al manual de CCS deberías ir a la datasheet. No veo ningún fuse que diga NOMCLR, y eso puede que sea necesario. Habría que revisar la datasheet.
-
si tiene la posibilidad...ya se lo puse..y tampoco arranca. Empiezo e pensar que hay algo mal ademas del oscilador interno...?¿
Pero...donde miras en el datasheet eso??.
Tampoco tengo boton de reset...afecta eso?...y se lo hago apagando y encendiendo la alimentacion.
La verdad es que no habia trabajado nunca con estos HV...ni con un oscilador interno...y no me entero.
-
Los bits de configuración vienen en la página 109 de la data.
Revisa bien el esquema, a ver si el problema lo tienes ahí.
-
disculpa...pero no entiendo muy bien tanto registro...jej.
le puse esto....
#include <16HV616.h>
#FUSES IOSC4, NOWDT, NOPUT,INTRC, NOMCLR
#use delay(internal=4000000)
#use fast_io(A)
#byte PORTA = 0x05
#bit A0 = 0x05.0//output para abrir
#bit A1 = 0x05.1//output para cerrar
#bit A2 = 0x05.2
#bit A3 = 0x05.3//input para lectura del selector pin0
#bit A4 = 0x05.4//input para lectura del selector pin1
#bit A5 = 0x05.5
main ()
{
set_tris_A( 0b111100 );
setup_vref (FALSE);
disable_interrupts(global);
output_bit(PIN_A0,1);
output_bit(PIN_A1,1);
}
En el circuito...no tengo nada conectado al micro...unicamente la R=10K de MCLR a Vdd y alimentacion externa de 5V..¿??
-
Hola a Tod@s:
A mi esto me funciona
#include <12F675.h>
#fuses NOWDT,NOPROTECT
#fuses NOMCLR //Sin conectar la resistencia al pin MCLR
#fuses INTRC_IO //Oscilador interno
#use delay(INTERNAL=4M) // Ojo a INTERNAL y 4M = 4000000
Saludos