Raspberry BASIC > General Discussion

LG Library

<< < (2/4) > >>

John Spikowski:
Success!

The problem was /dev/gpiochip0 needed root permissions.


ubuntu@rpi4b:~/lg/EXAMPLES/lgpio$ sudo ./dhtxx
3 0.0 0.0 (g=4)
2 0.0 0.0 (g=4)
1 0.0 0.0 (g=4)
2 0.0 0.0 (g=4)
0 47.0 23.0 (g=4)
1 47.0 23.0 (g=4)
1 47.0 23.0 (g=4)
0 46.0 23.0 (g=4)
2 46.0 23.0 (g=4)
1 46.0 23.0 (g=4)
3 46.0 23.0 (g=4)
0 46.0 23.0 (g=4)



Metric
Humidity: 46.00 rh
Temperature: 23.00 C
Pressure: 1013.24 hPa

English
Humidity: 46.00 rh
Temperature: 73.40 F
Pressure: 29.92 In. Hg


Next I need to wrap this library in a ScriptBasic extension module.

John Spikowski:
I'm setting up my RPi 4B 4GB with Ubuntu 20.10 64 bit as my RPi development target. With my RPi 4B 8 GB fully loaded with desktop and running GitLab-ce, trying to use the GPIO bus for pulse sampling is asking too much.

I also plan to split this thread into its own development LG thread.

John Spikowski:
I installed Ubuntu 20.10 64 bit using the Raspberry Pi Imaging Tool.

Attached is a screenshot.

John Spikowski:
Here is the chipline.c program.


--- Code: C ---/*chipline.c2020-11-18Public Domain http://abyz.me.uk/lg/lgpio.html gcc -Wall -o chipline chipline.c -llgpio ./chipline*/#include <stdio.h> #include <lgpio.h> int main(int argc, char *argv[]){   int h;   int i;   lgChipInfo_t cinf;   lgLineInfo_t linf;    h = lgGpiochipOpen(0);   if (h >= 0)   {      if (lgGpioGetChipInfo(h, &cinf) == LG_OKAY)      {         printf("%d \"%s\" \"%s\"\n", cinf.lines, cinf.name, cinf.label);          for (i=0; i<cinf.lines; i++)         {            if (lgGpioGetLineInfo(h, i, &linf) == LG_OKAY)            {               printf("%d %d \"%s\" \"%s\"\n",                  linf.offset, linf.lFlags, linf.name, linf.user);            }         }      }       lgGpiochipClose(h);   }} 

jrs@RPi4B:~/lg/EXAMPLES/lgpio$ sudo ./chipline
58 "gpiochip0" "pinctrl-bcm2711"
0 0 "ID_SDA" ""
1 0 "ID_SCL" ""
2 0 "SDA1" ""
3 0 "SCL1" ""
4 0 "GPIO_GCLK" ""
5 0 "GPIO5" ""
6 0 "GPIO6" ""
7 7 "SPI_CE1_N" "spi0 CS1"
8 7 "SPI_CE0_N" "spi0 CS0"
9 0 "SPI_MISO" ""
10 0 "SPI_MOSI" ""
11 0 "SPI_SCLK" ""
12 0 "GPIO12" ""
13 0 "GPIO13" ""
14 0 "TXD1" ""
15 0 "RXD1" ""
16 0 "GPIO16" ""
17 0 "GPIO17" ""
18 0 "GPIO18" ""
19 0 "GPIO19" ""
20 0 "GPIO20" ""
21 0 "GPIO21" ""
22 0 "GPIO22" ""
23 0 "GPIO23" ""
24 0 "GPIO24" ""
25 0 "GPIO25" ""
26 0 "GPIO26" ""
27 0 "GPIO27" ""
28 0 "RGMII_MDIO" ""
29 0 "RGMIO_MDC" ""
30 0 "CTS0" ""
31 0 "RTS0" ""
32 0 "TXD0" ""
33 0 "RXD0" ""
34 0 "SD1_CLK" ""
35 0 "SD1_CMD" ""
36 0 "SD1_DATA0" ""
37 0 "SD1_DATA1" ""
38 0 "SD1_DATA2" ""
39 0 "SD1_DATA3" ""
40 0 "PWM0_MISO" ""
41 0 "PWM1_MOSI" ""
42 3 "STATUS_LED_G_CLK" "led0"
43 0 "SPIFLASH_CE_N" ""
44 0 "SDA0" ""
45 0 "SCL0" ""
46 0 "RGMII_RXCLK" ""
47 0 "RGMII_RXCTL" ""
48 0 "RGMII_RXD0" ""
49 0 "RGMII_RXD1" ""
50 0 "RGMII_RXD2" ""
51 0 "RGMII_RXD3" ""
52 0 "RGMII_TXCLK" ""
53 0 "RGMII_TXCTL" ""
54 0 "RGMII_TXD0" ""
55 0 "RGMII_TXD1" ""
56 0 "RGMII_TXD2" ""
57 0 "RGMII_TXD3" ""
jrs@RPi4B:~/lg/EXAMPLES/lgpio$

John Spikowski:
A toggle benchmark.


--- Code: C ---/*bench.c2020-11-18Public Domain http://abyz.me.uk/lg/lgpio.html gcc -Wall -o bench bench.c -llgpio ./bench*/ #include <stdio.h>#include <stdlib.h> #include <lgpio.h> #define LFLAGS 0 #define OUT 21#define LOOPS 20000 int main(int argc, char *argv[]){   int h;   int i;   double t0, t1;    h = lgGpiochipOpen(0);    if (h >= 0)   {      if (lgGpioClaimOutput(h, LFLAGS, OUT, 0) == LG_OKAY)      {          t0 = lguTime();          for (i=0; i<LOOPS; i++)         {            lgGpioWrite(h, OUT, 0);            lgGpioWrite(h, OUT, 1);         }          t1 = lguTime();          printf("%.0f toggles per second\n", (1.0 * LOOPS)/(t1-t0));      }       lgGpiochipClose(h);   }} 

jrs@RPi4B:~/lg/EXAMPLES/lgpio$ sudo ./bench
139130 toggles per second
jrs@RPi4B:~/lg/EXAMPLES/lgpio$

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version