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:

  1. LED1-et kikapcsoljuk
  2. Az SW1 nyomógomb megnyomását és elengedését követően LED1-et bekapcsoljuk.
  3. 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
  4. Villogtatjuk LED1-et (LED1 állapotának átbillentése után 100 ms várakozás következzen)
  5. Az SW1 nyomógomb megnyomását követően bekapcsoljuk LED1-et (stabilan világít)
  6. Az SW1 nyomógomb felengedését követően a program az 1. pontnál folytatódik

Hardver igény:

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.


Projekt: PICCOLO projekt - PIC18 támogatói programkönyvtár Készült: Thu Apr 7 21:00:24 2011 Készítette:   doxygen 1.5.9