Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

29/08/2009 #1


Una duda sobre interrupción externa INTRB0
Hola a todos, estoy haciendo un programa donde casi todo lo que hace el PIC16LF876A es a través del pin RB0,mi pregunta es si dentro de la interrupción externa puedo manejar variables globales para hacer comparaciones lógicas porque ya lo probé así y no funciona. Del otro modo, no uso la variable global y todo funciona bien, ademas de que compilo ambos programas sin ningún error, simplemente no me muestra nada en el puerto C si uso variables globales dentro de la interrupción. Aquí les va el fragmento del código:

Código:
int_EXT
unsigned int8 c=0; //variable global
void  EXT_isr(void)

++c;                      //incremento la variable global en cada interrupción
if (c<=150)             //si esa condición se cumple el if se ejecuta
  else                     //si no hace otra cosa, pero en ambos casos mando  
                            //datos al puerto C
if(c<255){
29/08/2009 #2

Avatar de Ardogan

Si fuera el compilador C18 de microchip, te diría que para usar una variable global dentro de una rutina de interrupción hay que declararla como "volatile":

volatile unsigned char c=0;

A lo mejor para ese compilador hay una declaración similar.
Saludos
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.