2 * \brief Interface pro ovladani pinu na RPi.
5 * \author Martin Prudek
7 * Deklaruje nativni funkce pro ovladani pinu a pwm na RPi.
8 * Implementace "rpi_hw.c"
22 #define FSEL_INPT 0b000 /*0*/
23 #define FSEL_OUTP 0b001 /*1*/
24 #define FSEL_ALT0 0b100 /*4*/
25 #define FSEL_ALT1 0b101 /*5*/
26 #define FSEL_ALT2 0b110 /*6*/
27 #define FSEL_ALT3 0b111 /*7*/
28 #define FSEL_ALT4 0b011 /*3*/
29 #define FSEL_ALT5 0b010 /*2*/
37 PLLD_500_MHZ=0, /*500 MHz*/
38 OSC_19_MHZ_2=1, /*19.2 MHz*/
39 HDMI_216_MHZ=2, /*216 MHz*/
40 PLLC_1000_MHZ=3 /*1000 MHz, changes with overclock*/
44 * \brief inicializuje pouziti GPIO pinu...
45 * (namapuje registry DMA)
47 extern int initialise (void);
51 * Select the native "balanced" mode, or standard mark:space mode
53 extern void pwmSetMode (int);
57 * Set the PWM range register. We set both range registers to the same
60 extern void pwmSetRange (unsigned int);
64 * Set/Change the PWM clock.
67 extern void pwmSetClock (int);
70 * \brief nastavi mod dnaeho pinu
71 * \param pin [in] cislo GPIO pinu
72 * \param mode [in] mod pinu -> in/out/altx
74 * Nastavi pin jako vstupni / vystupni, pripadne nastavi slternativni funkci.
76 extern void pinMode (int, int);
79 * \brief Precte logickou uroven daneho pinu 0/1
80 * v pripade neicnicializovaneho GPIO nebo neexistence pinu vrati 0
81 * \param pin [in] cislo GPIO pinu
83 extern int digitalRead (int);
86 * \brief zapise logickou uroven na dany pin
87 * \param pin [in] cislo GPIO pinu
88 * \param value [in] logicka uroven 0/1
90 extern void digitalWrite (int, int);
93 * \brief nastavi hodnotu pwm
94 * \param pin[in] cislo GPIO PWM pinu
95 * \param value[int] sirka plneni pwm (max=1024)
97 extern void pwmWrite (int, int);
100 * \brief A different approach to set gpio mode.
102 extern void gpioSetMode(unsigned gpio_n, unsigned mode);
105 * \brief Initialize gpclk.
107 extern int initClock(enum ClkSource,int, int);