You are on page 1of 5

principal

Inicializamos el sistema

Habilitamos las interrupciones

Escribimos en el maestro la palabra de control

Llamamos a la subrutina del LCD

Llamamos a la subrutina del esclavo

Llamamos a la subrutina de control de transmisin de datos No

Ha pasado 1 ms??

No Recibi palabra de control?

El maestro selecciona el siguiente esclavo

Subrutina de interrupcin del Maestro

Interrupcin

Salvamos los registros

Limpiamos el flag de interrupciones

No oo Guarda los datos a ser transmitidos en el SDO Sube la lnea del SCK

Flag de recepcin de datos es 0??

Si

Baja la linea SCK

Carga los datos del SDI

Contador de interrupciones +1

Contador < 16

Flag byte transmisin =1?

Cerramos el timer 0

Recuperamos los registros Recuperamos los registros

Salimos de la interrupcin

Programa del esclavo Principal

Inicializamos el sistema Habilitamos las interrupciones

Escribimos en el esclavo la palabra de control

Llamamos a la subrutina de control de transmisin de datos

No Ha pasado 2 ms??

Limpia el contador de interrupciones?

Interrupcin en el esclavo Interrupcin

Salvamos los registros

No oo

Si Se produce interrupcin en el timer??


Limpiamos el flag de interrupciones

Limpiamos el flag de interrupciones

Cerramos el timer 2
No Carga los datos del SDI

Esta el SS en nivel bajo

o o

Si

El master enva la peticin al esclavo para transmitir datos?

No

Activamos el SDO
Escribe datos en el buffer de tranmision

o o

Lee datos del buffer de recepcin

Guardamos los datos a ser transmitidos Cargamos los datos del SDI

Configuramos el SDO

Es el comando de recepcin de datos

Contador de interrupciones +1
No Enva una seal de reconocimiento

o o Contador < 8 Activamos el timer 0

Recuperamos los registros

Salimos de la interrupcin

You might also like