ioports/ledswitch2.c fájlreferencia

#include "piccolo_all.h"
#include "delays.h"

Ugrás a fájl forráskódjához.

Makródefiníciók

#define SW1_PRESSED()   SW1==0
#define SW1_RELEASED()   SW1==1

Enumerációk

enum  STATE12 { WAIT_FOR_PRESS, WAIT_FOR_RELEASE }

Függvények

void delay_ms (unsigned int d)
void main (void)


Részletes leírás

LED ki/bekapcsolása nyomógombbal II.

Ez a program a véges állapotgép megközelítéssel valósítja meg a LED1 kijelző SW1 nyomógombbal történő vezérlését:

  1. Az SW1 nyomógomb megnyomását és elengedését követően LED1-et bekapcsoljuk.
  2. Az SW1 nyomógomb újabb megnyomását és elengedését követően LED1-et kikapcsoljuk

Az állapotgépes megvalósítás előnye az, hogy a nyomógomb lenyomásra/felengedésre várakozás közben nem foglaljuk le a CPU idejét, hanem más tevékenység végzésére is lehetőséget adunk. Itt most LED4-et villogtatjuk "életjelzőként", ~1 Hz-es frekvenciával.

A nyomógomb pergésmentesítését úgy valósítjuk meg, hogy a nyomógomb állapotát csak bizonyos időközönként (~20 ms) vizsgáljuk, így az adott időköznél rövidebb idő alatt bekövetkező többszöri állapotváltást (a kontaktusok pergését) nem érzékeli a programunk.

Hardver igény:

Definíció a(z) ledswitch2.c fájlban.


Függvények dokumentációja

void delay_ms ( unsigned int  d  ) 

Késleltető eljárás, amely a Microchip PIC18 könyvtári eljárásait használja A belső ciklus kb. 1 ms késleltetést végez.

Paraméterek:
unsigned int d az előírt várakozási idő, 1 ms egységekben

Definíció a(z) ledswitch2.c fájl 44. 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