ch09/wakeup-int2.c fájlreferencia

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

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

Enumerációk

enum  { KI, BE }

Függvények

void hi_isr ()
 Magas prioritású programmegszakítás kiszolgálása.
void lo_isr ()
 Alacsony prioritású programmegszakítás kiszolgálása.
void initINT2 (void)
 Az INT2 bemenet inicializálása.
void delay_ms (unsigned int d)
void main (void)

Változók

enum { ... }  allapot
 Állapotjelző.


Részletes leírás

Ébresztés alvás üzemmódból az INT2 interrupt segítségével. Ebben a programban az elektronikusan ki-és bekacsolható készülékek (pl. TV, video, mobiltelefon) működését modellezzük. A készülék működését LED4 villogása fogja jelképezni, a ki- bekapcsolást pedig az INT2 bemenetre kötött nyomógombbal végezhetjük. Amikor a "készüléket" kikapcsoljuk, a mikrovezérlőt is energiatakarékos, "készenléti" állapotba kapcsoljuk a SLEEP utasítás segítségével. Az ébresztéshez most az INT2 megszakítást használjuk.

Mivel a megszakítást nemcsak az ébresztéshez, hanem a kikapcsoláshoz is használjuk, definiálnunk kell a megszakítást kiszolgáló eljárást. A magas prioritású megszakítást választottuk, tehát a hi_isr() eljárásban szolgáljuk ki a megszakításokat. A pergésmentesítés érdekében minden interrupt után a kontaktuspergés várható idejére ideiglenesen letiltjuk a további INT2 megszakításokat.

Hardver követelmények: az "A kísérleti áramkör" című fejezetben bemutatott referencia áramkört ki kell egészíteni: az INT2 bemenet és VSS közé egy nyomógombot (SW3), az INT2 bemenet és VDD közé pedig egy 10 kohmos felhúzóellenállást kell kötni. PIC18F4550 esetén a belső felhúzást bekapcsoltuk, így a külső felhúzás elhagyható.

Projekt konfiguráció: a helyes működéshez a HID_BOOTLOADER mellett a USE_INTERRUPT szimbólumot is definiálni kell!

Definíció a(z) wakeup-int2.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:
d az előírt várakozási idő, 1 ms egységekben

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