Microsoft PowerPoint 2 0 Conpatibilidad WINAVR MikroC Modo de compatibilidad
Compatibilidad
WINAVR - MikroC
Programacion C
Escuela Militar de Ingenieria
Ing. Germán Pereira Muñoz
Prototipos de Funcion(Cabeceras)
• Las Funciones deben ser declaradas antes de su uso:
› Una declaracion no es mas que cabecera de la funcion no la funcion
en si
• Las declaraciones de Funcion(cabeceras) puden ser incluidas en una
archivo include
› La definicion de la funcion esincluida en el cuerpo de la funcion
• void function_name(int, float); //cabecera
› Retorno de tipo es requerido; void significa que no retorna nada
› Tipos de Argumentos (los nombres no son necesarios, pero se puede
incluir los nombres si se decea)
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
2
1
14/08/2014
Main
• Cualquier programa C necesita una funcion
llamada main
•Generalmente definida (no declarada)
int main(void){
int x;
//variable local
x = add(3, 9); //llamada a funcion
return 0;
}
• El cuerpo de programa se encuentra entre
laves { }
• Esta funcion tradicionalmente retorna 0
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
3
Otras Funciones
• Otras definiciones de funcion son
usualmente puestas por debajo de la funcion
main o en un archivoseparado
int add(int a, int b){
return a+b;
}
Arguentos pasados
por valor a la
funcion
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
4
2
14/08/2014
Asignacion de Variables
uint8_t x = 3; //asignacion e inicializacion externa
int8_t loquesea(uint_8 a)//parametro local automatico
{
int_8 negOne = 0xFF;
// local automatico
static int8_t serial = 1; //local statico
return (serial++)+ a + negOne;
}
•
•
Locales automaticos existen solo cuando dura la
llamada de la funcion
Los datos globales y static son creados e inicializados
una sola vez en el programa; estos retiene valores entre
llamadas de funciones
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
5
Literales
• Los enteros pueden ser expresados en varias bases
› decimal: 29, -13, 0
› octal: 0377
›hexadecimal: 0x34F2
› binario: 0b011011
• Characteres
› 'a'
• String
› “Es un Strig terminado en NUL almacenado en
un ARRAY"
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
6
3
14/08/2014
Arrays
• Declaracion de ARRAYS
uint8_t edad[10];
int16_t temp[5];
int8_t ejemplo[] = {-1, 2, -5};
• Si es posible los Arrays son Dinamicamente
asignados arrays, pero requieren una
funcion deasignacion de memoria
07/22/10
Ing. Germán Pereira Muñoz –
Programacion C para AVR
7
Puertos de E/S
DDRx - Este registro determina la direccion (input/output)
de los pins en port[x]
A '0' bit en DDR pone al pin del puerto como entrada (input)
A '1' bit en DDR pone al pin del puerto como salida (output)
PORTx - Este registro contienen el estado para salida
de los pines en port[x]
A '0' bit pone al pindel puerto como salida=0 (LOW ~0V)
A '1' bit pone al pin del puerto como salida=1 (HIGH ~5V)
PINx - Este registro contiene el estado de entrada de los pines en port[x]
A '0' bit indica que el pin del puerto es = 0 (LOW ~0V)
A '1' bit indica que el pin del puerto es = 1 (HIGH ~5V)
La X puede ser reemplazada por A,B,C,D,E,F, o G dependiendo del puerto
designado.
07/22/10
Ing. Germán PereiraMuñoz –
Programacion C para AVR
8
4
14/08/2014
Manipulación de Datos
WINAVR
Manipulación de Bytes:
MikroC
Manipulación de Bytes:
Configuración de Puerto:
Configuración de Puerto:
DDRD = 0xF0;
// Los 4 bits superiores como salida
// Los 4 bits inferiores como entrada
Lectura de Byte
Lectura de Byte
dato = PINB;
dato = PORTB;
Escritura de Byte
Escritura de Byte
PORTB = dato;
PORTB =dato;
Manipulación de Bits:
Manipulación de Bits:
sbi(DDRD, 7);
// coloca el bit 7 como salida
sbi(PORTD, 0);
// coloca el Bit 0 del PORTD en 1
cbi(PORTD, 4);
// coloca el Bit 4 del PORTD en 0
07/22/10
TRISD = 0x0F;
// Los 4 bits superiores como salida
// Los 4 bits inferiores como entrada
TRISD. F7=0;
// coloca el bit 7 como salida
PORTD. F0=1;
// coloca el Bit 0 del PORTD en 1
PORTD.F4=0;...
Regístrate para leer el documento completo.