Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

P03.Programación en c para pics

3,170 views

Published on

  • Login to see the comments

P03.Programación en c para pics

  1. 1. Sistemas Basados en MicroprocesadoresProgramación en C para PIC’s
  2. 2. Lenguaje de programación C Es un lenguaje orientado a la implementación de sistemas operativos.  Es muy apreciado por la eficiencia del código que produce. Esun lenguaje de medio nivel con muchas características de bajo nivel.  Dispone de estructuras típicas de alto nivel,  pero a la vez permite un control del sistema a muy bajo nivel. Permite incluir código ensamblador en código C http://paginaspersonales.deusto.es/jonathan.garibay/
  3. 3. Conceptos en C: tipos de datos Los tipos de datos especifican los diferentes tamaños de valores para..  Constantes: valor de cualquier tipo que nunca cambia.  Variables: una variables es una forma de referirnos a una posición de memoria utilizada en un programa.  Puntero: tipo especial de variable en C que contiene la dirección en memoria de otra variable. http://paginaspersonales.deusto.es/jonathan.garibay/
  4. 4. Conceptos en C: tipos de datos (continuación...)Tipo Tamaño Mínimo Máximochar, signed char 8 bits -128 127unsigned char 8 bits 0 255int, short 16 bits -32768 32767unsigned int, unsigned short 16 bits 0 65535short long 24 bits -8388608 8388607unsigned short long 24 bits 0 16777215long 32 bits -2147483648 2147483647unsigned long 32 bits 0 4294967295 http://paginaspersonales.deusto.es/jonathan.garibay/
  5. 5. Conceptos en C: variables Lasvariables deben ser declaradas en las rutinas antes de utilizarse.  Siempre al principio de la función. La declaración debe especificar:  Tipo de la variable.  Denominación de la variable. Enel momento de su declaración, las variables pueden ser inicializadas. int a = 0 http://paginaspersonales.deusto.es/jonathan.garibay/
  6. 6. Conceptos en C: variables (continuación...) Matrices de datos en ROM (arrays) const rom char *dataarray = “Press button to select...” const rom char tunes[] = {“Press”,”button”,”to”} Etiquetas en C  parecidas a las constantes #define LightsON 0x01100110 #define LED PORTAbits.RA5 http://paginaspersonales.deusto.es/jonathan.garibay/
  7. 7. Conceptos en C: variables (continuación...) Espacio de la variables:  Global: declaradas fuera de la función main.  Son accesibles desde cualquier punto del programa y su vida útil es mientras que se ejecute el programa.  Local: declaradas dentro de una función.  Son accesibles sólo dentro de la función donde se declaran y su vida útil es mientras que esa función se ejecuta.  Si al programador le interesa mantener el valor de variable para llamadas posteriores de la función, debe ser declarada como estática (static). http://paginaspersonales.deusto.es/jonathan.garibay/
  8. 8. Conceptos en C: variables (continuación...) Acceder a datos de memoria:  Por su nombre: int a; a = 17;  Por su dirección (a través de punteros): int *bk, a; bk = &a; http://paginaspersonales.deusto.es/jonathan.garibay/
  9. 9. Conceptos en C: estructuras Condicionales: if (expresión) { sentencias } else { sentencias } http://paginaspersonales.deusto.es/jonathan.garibay/
  10. 10. Conceptos en C: estructuras (continuación...) Bucles: for (expr1;expr2;expr3) while (expresión) { { sentencias sentencias } } do { sentencias } while (expresión); http://paginaspersonales.deusto.es/jonathan.garibay/
  11. 11. Conceptos en C: estructuras (continuación...) Selección: switch (expresión) { case valor1: sentencias break; case valor2: sentencias break; ... default: sentencias break; } http://paginaspersonales.deusto.es/jonathan.garibay/
  12. 12. Conceptos en C: operadores Operadores aritméticos:  + suma  - resta  * multiplicación  / división  % resto  ++ incremento  -- decremento http://paginaspersonales.deusto.es/jonathan.garibay/
  13. 13. Conceptos en C: operadores (continuación...) Operadores lógicos y de desplazamiento:  & and  | or  ^ xor  ~ not  >> desplazamiento a derecha PORTA = PORTA >> 4  << desplazamiento a izquierda http://paginaspersonales.deusto.es/jonathan.garibay/
  14. 14. Conceptos en C: operadores (continuación...) Operadores de comparación y lógicos:  == igual  != no iguales  > mayor que  >= mayor o igual que  < menor que  <= menor o igual que  && and No es lo mismo el  || or operador & que el &&. ¿Cuál es la diferencia?  ! not http://paginaspersonales.deusto.es/jonathan.garibay/
  15. 15. Conceptos en C: funciones Ellenguaje C está diseñado para el uso de funciones (conjunto de instrucciones que realizan una operación concreta), que se combinan para dar lugar a un programa.  Programación estructurada. Lasvariables se pasan de una función a otra en forma de parámetros.  Por defecto, el paso de parámetros es por valor. La primera función que se ejecutará será la Main. Es necesario definir una función antes de poder utilizarla.  Funciones prototipo. http://paginaspersonales.deusto.es/jonathan.garibay/
  16. 16. C y los microcontroladores PIC Referencia a los registros del µcontrolador:  Los registros del microcontrolador son direccionables en memoria como variables. Incluyendo el archivo de PORTA = LightsON; cabecera <p18fxxxx.h>  Se puede hacer referencia a los bits individuales: TRISBbits.TRISB3 = 0; PORTBbits.RB4 = 1; #pragma statements  Específican detalles del microcontrolador que utilizamos (palabra de configuración). #pragma config OSC=XT, WDT=OFF http://paginaspersonales.deusto.es/jonathan.garibay/
  17. 17. C y los microcontroladores PIC (continuación…) Se debe indicar cuales son las funciones de interrupción por medio de la siguiente directiva: http://paginaspersonales.deusto.es/jonathan.garibay/
  18. 18. Ejemplo de programa en C#include <p18F4520.h> /*Para las declaraciones de TRISB y PORTB*/int counter; //variable globalvoid main(void){ counter=1; TRISB=0; //configuración de PORTB while (counter <=15) { PORTB = counter; //mostrar el valor de counter counter++; }} http://paginaspersonales.deusto.es/jonathan.garibay/

×