I/O

Raspberry piでテストプログラムを作り、PIOの出力を確認します。

test.c

#include "bcm2835.h" 

static const int nPin[] = {17,18,27,22,23,24,25,4,2,3,8,7,10,9,11,14};
int nMaxCntPin = 16;

int main(int argc, char **argv)
{
    if (!bcm2835_init())
        return 1;
        
    int nPinNo = 0;
    for(nPinNo = 0; nPinNo < nMaxCntPin; nPinNo++ )
    {
		bcm2835_gpio_fsel(nPin[nPinNo], BCM2835_GPIO_FSEL_OUTP);
	}
	
	int nSign = 1;
	int nIndex = 0;
    while (1)
    {
		int nCnt = 0;
		for(nCnt = 0;nCnt < nMaxCntPin; nCnt++) 		{ 			if(nCnt == nIndex) 				bcm2835_gpio_write(nPin[nCnt], HIGH); 			else 				bcm2835_gpio_write(nPin[nCnt],LOW); 		} 		nIndex += nSign; 		 		if( nIndex > nMaxCntPin - 1 )
		{
			nSign = -1;
			nIndex = nMaxCntPin - 2;
		}
		else if( nIndex < 0)		
		{
			nSign = 1;
			nIndex = 1;
		}
        
		usleep(25000);
    }
    bcm2835_close();
    return 0;
}

make

# gcc test.c -l bcm2835 -lrt

出力確認できました。
何作ろうかな・・・・