⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

*Consultas de programa en C de microcontrolador

cesarantunes
hace 18 años
hace 18 años
Hola, yo tambien arme este proyecto de Pablin y me funciona (solo lo he probado manejandolo desde la misma PC) Pero mi duda eso sobre el programite en C que lleva el micro...Me podrian aclarar o exlplicar algo sobre la Libreria de Funciones que requiere el codigo??? Por ejemplo esto: [color=green:fffca55ef0]#define PIN_A0 40 #define PIN_A1 41 #define PIN_A2 42 #define PIN_A3 43 #define PIN_A4 44[/color:fffca55ef0] ¿Que es 41; 42; 43..? Los mismo para esto: [color=green:fffca55ef0]#define getc getch #define getchar getch #define puts(s) {printf(s); putchar(13); putchar(10);} #define putc putchar[/color:fffca55ef0] QUE HACE ESTO?? Y luego el resto que queda de la libreria tampoco lo entiendo [color=green:fffca55ef0]#define WDT_FROM_SLEEP 0 #define WDT_TIMEOUT 8 #define MCLR_FROM_SLEEP 16 #define NORMAL_POWER_UP 24 /////////////////////////////// Constants used for SETUP_COUNTERS() #define RTCC_INTERNAL 0 #define RTCC_EXT_L_TO_H 32 #define RTCC_EXT_H_TO_L 48 #define RTCC_DIV_2 0 #define RTCC_DIV_4 1 Etc, etc, etc.....[/color:fffca55ef0] Espero puedan ayudarme, ya que debo rendir este proyecto en el colegio. Muchas Gracias!!
torresdelamora
hace 18 años
hace 18 años
Dificilmente te ayudaran si no valoras las repuestas. #define PIN_A0 40 #define PIN_A1 41 #define PIN_A2 42 #define PIN_A3 43 #define PIN_A4 44 de lo que estuve viendo es la libreria para un pic que no es de 18 pines (sino de mas pines), pero aun no se si corresponde al pin o es un numero para identificar esa terminal.
cesarantunes
hace 18 años
hace 18 años
Gracias por las respuestas... Te comento que SI es un integrado de 18 pines. En el codigo figura otro modelo de PIC (no esl 16F84) ya que el programa fuente esta compilado con el PCW DEMO de la empresa CCS, es por eso que figura otro modelo de PIC, pero como el set de instrucciones no cambia demasiado funciona igual... Asi que sigo con la duda sobe que sons esos numeros: 40, 41, 42, etc Puede que sean posiciones de memoria..
torresdelamora
hace 18 años
hace 18 años
por lo que estuve viendo ese numero es salido de la direccion del puerto en cuestion multiplicado por 8 y sumado el numero de bit de ese puerto, en otras palabras es la direccion de ese bit en particular del puerto. Ojala y esto ayude Atte David Fernando Torres De La Mora
torresdelamora
hace 18 años
hace 18 años
Estimado no se de que proyecto hablas, no has puesto de que se trata. todo lo que aparece como #define es declarar otra forma de escribir un texto, ejemlo #define PIN_A0 40 significa que cada vez que pongas PIN_A0 en tu programa, se substituira por 40, que me imagino es el numero de pin del integrado, probablemente atmel de igual manera cada vez que coloques textos como getc o getchar, se substituiran por getch, instruccion con la cual te regresa un valor ascii de 8 bits aplastado por un teclado o una entrada, aunque me imagino que aqui lo usan para leer un puerto igual para putc que se substituira por putchar, el cual coloca un byte ascii en la pantalla o en una salida, me imagino que sera en un puerto con #define puts(s) {printf(s); putchar(13); putchar(10);} cada vez que pongas puts("Caballo"); estas colocando en realidad printf("caballo"); //sacas por una salida en secuencia los caracteres caballo putchar(13) ; //sacas un retorno de carro putchar(10); //sacas salto de linea me imagino que mandas imprimir o via serial algun texto en especial las deficiniciones son para simplificar el entendimiento de tu programa #define WDT_FROM_SLEEP 0 asi cada vez que escribas en tu programa Modo=WDT_FROM_SLEEP; entenderas que estarias tomando un modo del watchdogtimer que es en vez de Modo= 0; que tal vez no sepas a que se refiere son sonstantes que ya no cambian en tu programa y estan definidas antes de la compilacion y por tanto no ocupan espacio en el programa Ojala te haya servido
cesarantunes
hace 18 años
hace 18 años
Perdon que no aclaré, me refiero al Proyecto Entradas y Salidas de un PIC controladas por Internet que se encuentra en el siguienet link http://www.pablin.com.ar/electron/proyecto/picnet/index.htm Si lees un poquito en la pagina de Pablin, veras de que se trata el proyecto...Permite manejar desde una pc local (donde esta conectada la plaqueta) o una pc remota via internet, las salidas del PIC16F84 (activarlas o desactivarlas) y permita tambien, ver el estado de 2 entradas... Lo que yo no entiendo de : #define PIN_A0 40 #define PIN_A1 41 #define PIN_A2 42 #define PIN_A3 43 #define PIN_A4 44 Es que es 40, 41, 42...ya que el PIC solo tiene 18 pines... Tampoco comprendo que hace esta linea al comienzo de main(): setup_counters(RTCC_INTERNAL,RTCC_DIV_2) Que seguramente esta asociado a esta parte del codigo presente en la libreria: #define RTCC_INTERNAL 0 #define RTCC_EXT_L_TO_H 32 #define RTCC_EXT_H_TO_L 48 #define RTCC_DIV_2 0 #define RTCC_DIV_4 1 #define RTCC_DIV_8 2 #define RTCC_DIV_16 3 #define RTCC_DIV_32 4 #define RTCC_DIV_64 5 #define RTCC_DIV_128 6 #define RTCC_DIV_256 7 Segun me dijeron, el PIC prueba distintas velocidades de comunicacion a traves del puerto Serie, y elije la que mejor ande..esto gracias al Pre Escaler que posee el PIC.. Tengo demas dudas, pero no quiero hacer muy extenso el Post, asi que las mencionare luego ***GRACIAS desde ya*** [/url]
torresdelamora
hace 18 años
hace 18 años
setup_counters(RTCC_INTERNAL,RTCC_DIV_2) estas escogiendo el el contador de tiempo real trabaje con la fuente interna usando el prescaler con division de 2. Anexo tablita encontrada en internet para un reloj de 10Mhz TMR0 timing with 10MHz clock [note 1] prescaler arg to setup_counters() RTCC increments RTCC rolls over 1:1 WDT_18MS [note 2] 400 nSec 102.4 uSec 1:2 RTCC_DIV_2 800 nSec 204.8 uSec 1:4 RTCC_DIV_4 1.6 uSec 409.6 uSec 1:8 RTCC_DIV_8 3.2 uSec 819.2 uSec 1:16 RTCC_DIV_16 6.4 uSec 1.6384 mSec 1:32 RTCC_DIV_32 12.8 uSec 3.2768 mSec 1:64 RTCC_DIV_64 25.6 uSec 6.5536 mSec 1:128 RTCC_DIV_128 51.2 uSec 13.1072 mSec 1:256 RTCC_DIV_256 102.4 uSec 26.2144 mSec
Reparaciones similares solucionadas

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.93
(14)

Curso Reparación de Equipos de Audio de Alta Fidelidad

Maximiliano Resch
$ 60 USD
$ 20 USD
4.73
(22)

Curso Reparación de Fuentes Conmutadas de PC y Equipos Electrónicos

Maximiliano Resch
$ 40 USD
$ 20 USD
4.94
(16)

Curso Refrigeración Comercial Aplicado a Diagnóstico y Reparación

Ing. Georga Melgarejo
$ 40 USD
$ 13 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis