ioports/switches.c fájlreferencia
#include "piccolo_all.h"
Ugrás a fájl forráskódjához.
|
Makródefiníciók |
#define | SW1_PRESSED() SW1==0 |
#define | SW1_RELEASED() SW1==1 |
#define | SW3 PORTBbits.RB5 |
Enumerációk |
enum | STATE {
STATE_RESET = 0,
STATE_WAIT_FOR_PRESS1,
STATE_WAIT_FOR_RELEASE1,
STATE_WAIT_FOR_PRESS2,
STATE_WAIT_FOR_RELEASE2,
STATE_BLINK,
STATE_WAIT_FOR_RELEASE3
} |
Függvények |
void | printNewState (STATE e_currentState) |
void | main (void) |
Változók |
STATE | e_LastState = STATE_RESET |
Részletes leírás
LED vezérlése nyomógombbal és kapcsolóval.
Ez a program a véges állapotgép megközelítéssel valósítja meg a LED1 kijelző az SW1 nyomógombbal és az SW3 kapcsolóval történő vezérlését az alábbiak szerint:
- LED1-et kikapcsoljuk
- Az SW1 nyomógomb megnyomását és elengedését követően LED1-et bekapcsoljuk.
- Az SW1 nyomógomb újabb megnyomását és elengedését követően a programot az SW3 állásától függően így folytatódik:
- Ha SW3 =0 (a kapcsoló zár), akkor az 1. pontnál folytatjuk
- Ha SW3 = 1 (a kapcsoló nyitott), akkor a 4. pontnál folytatjuk
- Villogtatjuk LED1-et (LED1 állapotának átbillentése után 100 ms várakozás következzen)
- Az SW1 nyomógomb megnyomását követően bekapcsoljuk LED1-et (stabilan világít)
- Az SW1 nyomógomb felengedését követően a program az 1. pontnál folytatódik
Hardver igény:
- PICCOLO projekt alapkapcsolás PIC18F14K50 vagy PIC18F4550 mikrovezérlővel, esetleg a Microchip Low Pin Count USB vagy a PICDEM Full Speed USB demókártya
- USB kapcsolat
- SW3 kapcsoló vagy jumper az RB5 kivezetés és VSS (föld) közé.
Definíció a(z) switches.c fájlban.
Függvények dokumentációja
void printNewState |
( |
STATE |
e_currentState |
) |
|
Nyomkövető üzenet kiírása minden állapotváltáskor. Az előző állapotot a globális e_LastState változó őrzi. Kiírás akkor törénik, ha az aktuális állapot különbözik az előző állapottól.
- Paraméterek:
-
| STATE | e_currentState - az aktuális állapot |
Definíció a(z) switches.c fájl 64. sorában.