ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Motor STM32F4 Discovery


Enviado por   •  14 de Marzo de 2016  •  Tarea  •  291 Palabras (2 Páginas)  •  136 Visitas

Página 1 de 2

#include <stdio.h>

#include "STM32F4xx.h"

void delay();

void delay_2();

int main (void){

RCC -> AHB1ENR = 0x1F;

GPIOA -> MODER = 0x0;

GPIOB -> MODER = 0x0;

GPIOD -> MODER = 0x55000000;

GPIOC -> MODER = 0x1555;

GPIOE -> MODER = 0x1555;

int lap[4] = {0x1000, 0x2000, 0x4000, 0x8000}, s1,s2, y;

int display1[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}, display2[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

int contador_1 = 0, contador_2 = 0, contador_3 = 0, contador_4 = 0, value = 0;

while(1){

s1 = GPIOA->IDR;

s2 = GPIOB->IDR;

s1 = s1&0x01;

s2 = s2&0x01;

if (s1 == 0x00){

if (value < 0){

value = 3;

}

else

value--;

GPIOD -> ODR = lap[value];

delay();

if (s2 == 0x01){

contador_1++;

GPIOC -> ODR = display1[contador_1];

delay_2();

if (contador_1 == 10){

contador_1 = 0;

contador_3++;

GPIOE -> ODR = display1[contador_3];

GPIOC -> ODR = display1[contador_1];

delay_2();

}

else

GPIOE -> ODR =display1[contador_3];

GPIOC -> ODR =display1[contador_1];

}

}

else

if(s1 == 0x01){

if(value > 3){

value = 0;

}

else

value++;

GPIOD -> ODR = lap[value];

delay();

if(s2 == 0x01){

contador_2++;

GPIOC -> ODR = display1[contador_2];

delay_2();

if (contador_2 == 10){

contador_4++;

contador_2 = 0;

GPIOC -> ODR = display1[contador_2];

GPIOE -> ODR = display1[contador_4];

delay_2();

}

else

GPIOE -> ODR = display1[contador_4];

GPIOC -> ODR = display1[contador_2];

}

}

}

}

void delay(){

for (int i = 0; i < 2000000; i++){};

}

void delay_2(){

for(int i = 0; i < 10000000; i++){};

}

...

Descargar como (para miembros actualizados) txt (2 Kb) pdf (50 Kb) docx (9 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com