Skip to content
Snippets Groups Projects
Commit 1a5086bf authored by Troller Fabian (HES)'s avatar Troller Fabian (HES)
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
labo1.cpp 0 → 100644
/*
* labo1.cpp
*
* Created on: 4 octobre 2019
* Author: Orphee Antoniadis
*/
#include "mbed.h"
DigitalOut LED_0(P0_0);
DigitalOut LED_1(P0_1);
DigitalOut LED_2(P0_2);
DigitalOut LED_3(P0_3);
DigitalIn BTN_0(P2_0);
DigitalIn BTN_1(P2_1);
BusOut MonBus(P2_0,P2_1,P2_2,P2_3,P2_4,P2_5,P2_6,P2_7);
void exercice1(void) {
LED_0 = 1;
LED_1 = 1;
LED_2 = 1;
LED_3 = 1;
wait_ms(500);
LED_0 = 0;
LED_1 = 0;
LED_2 = 0;
LED_3 = 0;
wait_ms(500);
}
void exercice2(void){
BTN_1.mode(PullUp);
while (1){
LED_1 = !BTN_1;
LED_0 = !BTN_1;
}
}
void exercice3(void){
BTN_0.mode(PullUp);
BTN_1.mode(PullUp);
uint8_t count = 0;
while(1)
{
if(BTN_0)
{
count += 1;
}
if(BTN_1)
{
count -= 1;
}
if(count > 15)
{
count = 0;
}
MonBus = count;
wait_ms(150);
}
}
void exercice4(void)
{
LED_1 = 1;
while(1){
LED_0 = 1;
wait_ms(80);
LED_0 = 0;
wait_ms(20);
}
}
void exercice5(void)
{
LED_1 = 1;
uint8_t cpt = 0;
float val = 0.0001;
while(1){
LED_0 = 1;
wait_ms(val);
LED_0 = 0;
wait_ms(val);
if(cpt == 1000)
{
val += 10;
cpt = 0;
}
}
}
void exercice_sequence()
{
uint8_t counter = 0;
while(1){
if(counter >= 4)
{
counter += 1;
switch(counter)
{
case 8:
LED_3 = 0;counter = 0;
case 7:
LED_2 = 0;
case 6:
LED_1 = 0;
case 5:
LED_0 = 0;break;
}
}
else
{ counter += 1;
switch(counter)
{
case 4:
LED_3 = 1;
case 3:
LED_2 = 1;
case 2:
LED_1 = 1;
case 1:
LED_0 = 1;break;
}
}
wait_ms(200);
}
}
void compter_rebond()
{
BTN_0.mode(PullUp);
uint8_t cpt;
while(1){
if(!BTN_0){
cpt += 1;
MonBus = cpt;
wait_ms(50);
cpt = 0;
}
MonBus = cpt;
}
}
void timer_mesure()
{
uint8_t cpt = 0;
uint8_t tmp = 0;
uint8_t etat = 0;
bool first = true;
BTN_0.mode(PullUp);
LED_0 = 0;
while(1)
{
switch (etat)
{
case 0: while(!BTN_0){cpt += 10; LED_0 = 1;wait_ms(1);}if(BTN_0){etat += 1;LED_0 = 0;}break;
case 1: if(!BTN_0){etat += 1;}break;
case 2: if(tmp > cpt){etat = 0;LED_0 = 0;}else{LED_0 = 1;tmp += 1;wait_ms(1);}break;
}
}
}
void MyNewPCB()
{
LED_1 = 1;
}
int main(void) {
// Choisir le numero de l'exercice en changeant la valeur de 'exo'.
uint8_t exo = 9;
while(1) {
// Choix de l'exercice. Rajouter des exercices si besoin, en gardant la même
// syntaxe et en ecrivant la fonction correspondante avant le 'main'.
switch(exo) {
case 1: exercice1(); break;
case 2: exercice2(); break;
case 3: exercice3(); break;
case 4: exercice4(); break;
case 5: exercice5(); break;
case 6: exercice_sequence(); break;
case 7: compter_rebond(); break;
case 8: timer_mesure(); break;
case 9: MyNewPCB(); break;
default: printf("Bad exercice number !\n");
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment