Gabriel,
Me alegra mucho que hayas podido hacer andar el programa. A lo que vos te referís con AL y AH supongo que será al 80x86 de intel (el de la PC) que combina estos registros en el AX. Esto en el PIC16F no existe porque es un microprocesador de 8 bits y sólo maneja estos registros. De todas maneras no es muy complicado (yo he calculado raices cuadradas, eso sí que es feo).
La cuenta que hay que hacer es f=TMR1*76.294 (con cinco cifras significativas para no agregar error al resultado), y lo que el multiplicador es fijo, el algoritmo es sencillo, no son más que rotaciones de registros y sumas.
Igualmente si lo vas a hacer en basci creo que no necesitás todo esto, podés hacer la cuenta directamente definiendo la variable F como de 24 bits y hacer:
F = TMR1H*256+TMR1L
F = F*76.29394531
Y asunto solucionado, el basic se ocupa de todo, en F tenés la frecuencia.
Yo nunca programé un micro en basic, así que si esto no es posible y hay que hacerlo de una forma parecida al assembler lo vemos. *** La cosa sería hacer la cuenta por partes tomando en cuenta que 76.294 =aprox= 64+8+4+1/4+1/32+1/128+1/256+1/1024, dejando un error de solo 2Hz en el peor de los casos. Estas cuentas son sencillas porque son todas potencias de 2 lo cual el micro siempre maneja bien. ***
Slds...
Mariano
Me alegra mucho que hayas podido hacer andar el programa. A lo que vos te referís con AL y AH supongo que será al 80x86 de intel (el de la PC) que combina estos registros en el AX. Esto en el PIC16F no existe porque es un microprocesador de 8 bits y sólo maneja estos registros. De todas maneras no es muy complicado (yo he calculado raices cuadradas, eso sí que es feo).
La cuenta que hay que hacer es f=TMR1*76.294 (con cinco cifras significativas para no agregar error al resultado), y lo que el multiplicador es fijo, el algoritmo es sencillo, no son más que rotaciones de registros y sumas.
Igualmente si lo vas a hacer en basci creo que no necesitás todo esto, podés hacer la cuenta directamente definiendo la variable F como de 24 bits y hacer:
F = TMR1H*256+TMR1L
F = F*76.29394531
Y asunto solucionado, el basic se ocupa de todo, en F tenés la frecuencia.
Yo nunca programé un micro en basic, así que si esto no es posible y hay que hacerlo de una forma parecida al assembler lo vemos. *** La cosa sería hacer la cuenta por partes tomando en cuenta que 76.294 =aprox= 64+8+4+1/4+1/32+1/128+1/256+1/1024, dejando un error de solo 2Hz en el peor de los casos. Estas cuentas son sencillas porque son todas potencias de 2 lo cual el micro siempre maneja bien. ***
Slds...
Mariano