TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: tecnotron2012 en 23 de Octubre de 2013, 17:09:28
-
Hola tengo la siguiente porción de código en Assembler Osea a cada bit del registro Modos le asigno un identificador. Y quiero hacer lo mismo en CCS pero no sé la sintaxis. Alguien me puede ayuda???
20 #DEFINE Ingreso Modos,0 ;
21 #DEFINE Encendido Modos,1 ;
22 #DEFINE Pausa Modos,2 ;
quiero hacer por ejemplo lo siguiente
while(Ingreso==1){
---
}
Mientras el bit 0 del registro Modos vale uno, ejecuta tal orden etc. Se entiende? Gracias
-
Hola,
struct{
int Ingreso:1;
int Encendido:1;
int Pausa:1;
}Modos;
...
while(Modos.Ingreso==1){
...
}
Saludos!
-
Muchas gracias!!!
-
creo que en CCS puedes poner .B0 o algo asi, sin embargo no te recomiendo para nada trabajar por bits, es mucho mas lento ya que hay que despejar ese bit en concreto y luego compararlo.
-
Hola, el modo define funciona igual que en assembler, pero no lleva ;
Saludos.
-
Pero tendría que definir el registro Modos? no entiendo . Lo que quiero hacer es usar flags por ejemplo en el modo ingreso
el registro Modos debe valer 00000001 entonces para saber si me encuentro en este modo consulto el bit 0 que le asigné por identificador "Ingreso". Esto mismo no me sale en C
-
Bueno gracias a todos, encontré la solución en la ayuda de CCS
#BIT
Syntax:
#bit id = x.y
Elements: id is a valid C identifier, x is a constant or a C variable, y is a constant 0-7.
Purpose:
A new C variable (one bit) is created and is placed in memory at byte x and bit y. This is useful to gain access in C directly to a bit in the processors special function register map. It may also be used to easily access a bit of a standard C variable.
Examples:
int result;
#bit result_odd = result.0
...
if (result_odd)