Upload
jonathan-ruiz-de-garibay
View
2.814
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Sistemas Basados en
Microprocesadores
Programación en C para PIC’s
http://paginaspersonales.deusto.es/jonathan.garibay/
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.
Es un 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/
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.
Conceptos en C: tipos de datos
http://paginaspersonales.deusto.es/jonathan.garibay/
Tipo Tamaño Mínimo Máximo
char, signed char 8 bits -128 127
unsigned char 8 bits 0 255
int, short 16 bits -32768 32767
unsigned int, unsigned short 16 bits 0 65535
short long 24 bits -8388608 8388607
unsigned short long 24 bits 0 16777215
long 32 bits -2147483648 2147483647
unsigned long 32 bits 0 4294967295
Conceptos en C: tipos de datos (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
Las variables 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.
En el momento de su declaración, las variables
pueden ser inicializadas.
int a = 0
Conceptos en C: variables
http://paginaspersonales.deusto.es/jonathan.garibay/
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
Conceptos en C: variables (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
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).
Conceptos en C: variables (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
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;
Conceptos en C: variables (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
Condicionales:if (expresión)
{
sentencias
}
else
{
sentencias
}
Conceptos en C: estructuras
http://paginaspersonales.deusto.es/jonathan.garibay/
Bucles:while (expresión)
{
sentencias
}
do
{
sentencias
}
while (expresión);
for (expr1;expr2;expr3)
{
sentencias
}
Conceptos en C: estructuras (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
Selección:switch (expresión)
{
case valor1:
sentencias
break;
case valor2:
sentencias
break;
...
default:
sentencias
break;
}
Conceptos en C: estructuras (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
Operadores aritméticos:
+ suma
- resta
* multiplicación
/ división
% resto
++ incremento
-- decremento
Conceptos en C: operadores
http://paginaspersonales.deusto.es/jonathan.garibay/
Operadores lógicos y de desplazamiento:
& and
| or
^ xor
~ not
>> desplazamiento a derecha
PORTA = PORTA >> 4
<< desplazamiento a izquierda
Conceptos en C: operadores (continuación...)
http://paginaspersonales.deusto.es/jonathan.garibay/
Operadores de comparación y lógicos:
== igual
!= no iguales
> mayor que
>= mayor o igual que
< menor que
<= menor o igual que
&& and
|| or
! not
Conceptos en C: operadores (continuación...)
No es lo mismo el
operador & que el &&.
¿Cuál es la diferencia?
http://paginaspersonales.deusto.es/jonathan.garibay/
El lenguaje 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.
Las variables 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.
Conceptos en C: funciones
http://paginaspersonales.deusto.es/jonathan.garibay/
Referencia a los registros del µcontrolador:
Los registros del microcontrolador son direccionables en
memoria como variables.
PORTA = LightsON;
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
C y los microcontroladores PIC
Incluyendo el archivo de
cabecera <p18fxxxx.h>
http://paginaspersonales.deusto.es/jonathan.garibay/
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/
#include <p18F4520.h> /*Para las declaraciones de TRISB y PORTB*/
int counter; //variable global
void main(void)
{
counter=1;
TRISB=0; //configuración de PORTB
while (counter <=15)
{
PORTB = counter; //mostrar el valor de counter
counter++;
}
}
Ejemplo de programa en C