Hola a todos, primero que todo me presento, mi nombre es Felipe estudio ingeniería electrónica.
bueno tengo unas preguntitas para quien pueda ayudarme
tengo el siguiente codigo:
#include <18F4550.h>
#device adc=16
#FUSES NOWDT //No Watch Dog Timer
#FUSES WDT128 //Watch Dog Timer uses 1:128 Postscale
#FUSES CPUDIV4 //System Clock by 4
#FUSES XT //Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES PUT //Power Up Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOXINST //Extended set extension and Indexed Addressing mode disabled (Legacy mode)
#use delay(crystal=4000000, clock=1000000)
#define led1 PIN_D0
#define led2 PIN_D1
#define boton PIN_D2
#fuses nomclr
#int_TIMER1
void TIMER1_isr(void)
{
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
output_toggle(led1);
}
void main()
{
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
setup_oscillator(OSC_4MHZ|OSC_INTRC|OSC_31250|OSC_PLL_OFF);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
while(1){
if(input(boton)==1){
output_toggle(led2);
delay_ms(1000);
}
}
}
bueno como ahí dice estoy trabajando con un cristal de 4MHz y el timmer1 que me da un tiempo de overflow de un poco mas de 0.5 seg...
mi pregunta es como poner este timer a precisamente 0.5 seg...
leí por hay que existe un comando para comenzar el timmer desde un valor predeterminado
pero no se cual es :l
bueno y la otra pregunta que tenia es con respecto a algo que he visto en algunos ejemplos...
no entiendo por que "declaran" los puertos. no entiendo esto de declarar...
//Declaramos la posición de los puertos-----------------------
#BYTE PORTA = 0x05
#BYTE PORTB = 0x06
#BYTE PORTA_TRIS = 0x85
#BYTE PORTB_TRIS = 0x86
yo por lo general ocupo el:
#use fast_io(puerto)
alguien podria explicarme estas cositas?
bueno de antemano muchas gracias y saludos a todos