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. 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. Conceptos en C: tipos de datos (continuación...)
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
http://paginaspersonales.deusto.es/jonathan.garibay/
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. 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. 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. 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. Conceptos en C: estructuras
Condicionales:
if (expresión)
{
sentencias
}
else
{
sentencias
}
http://paginaspersonales.deusto.es/jonathan.garibay/
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. 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/
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. 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. 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. 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. 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. Ejemplo de programa en C
#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++;
}
}
http://paginaspersonales.deusto.es/jonathan.garibay/