//compile // $g++ -Wall -o main main.c MCUGearM.cpp MCUGearBaseM.cpp -lwiringPi // $sudo ./main #include "commonM.h" #include "MCUGearM.h" #include "MCUGearBaseM.h" #include#include #include #include void setIOUni(MCUGear *mcugear); int main(void){ //define IOs int inpin[2] = {0,1}; //output pins int outpin[6] = {2,3,4,5,6,7}; //output pins if(wiringPiSetup() == -1) return 1; int spiSpeed = 1000000; //1MHz int spiChan = 0; //CE0 if(wiringPiSPISetup(spiChan, spiSpeed)== -1) //set CE0 and 1MHz return 1; //set IO direction pinMode(inpin[0], INPUT); pinMode(inpin[1], INPUT); pinMode(outpin[0], OUTPUT); pinMode(outpin[1], OUTPUT); pinMode(outpin[2], OUTPUT); pinMode(outpin[3], OUTPUT); pinMode(outpin[4], OUTPUT); pinMode(outpin[5], OUTPUT); initBase(); //initialize Baseboard //set Address and number of pins that you want to use on this module MCUGear UniM = MCUGear(N_VDD_VDD_VDD); MCUGear AD2M = MCUGear(N_SCL_SCL_VSS); int sw1 = 0; int sw2 = 0; initBase(); //initialize Baseboard //set schematic select 0-7 int location = UniM.detectModule(); //save location data in MCUGear class and you can check return data.Baseboard has 0-47 pin. printf("UniM location = %d\n", location); //Save wiring data on Bank0 -------------------------- startReg(0); setIOUni(&UniM);//make schematic Bank0 endReg(0); //--------------------------------------------------------------------- //If you want to make other Bank(schematic 0 to 7) write like that. // startReg(1); // setIOBank1(&UniM);//make schematic Bank1 // endReg(1); // //delete function is //void deleteBank(unsigned char bank); //--------------------------------------------------------------------- changeBank(0);//select Bank(schematic 0 to 7) UniM.connectModule(); //connect---(open module gate) while(1){ //UniM.connectModule(); //connect---(open module gate) sw1 = digitalRead(inpin[0]); sw2 = digitalRead(inpin[1]); printf("sw1 = %d sw2 = %d\r\n",sw1,sw2); digitalWrite(outpin[0],0); digitalWrite(outpin[1],1); digitalWrite(outpin[2],1); delay(300); //set your favorite time digitalWrite(outpin[0],1); digitalWrite(outpin[1],0); digitalWrite(outpin[2],1); delay(300); //set your favorite time digitalWrite(outpin[0],1); digitalWrite(outpin[1],1); digitalWrite(outpin[2],0); delay(300); //set your favorite time //UniM.disconnectModule(); //disconnect---(close module gate) //changeBank(nowBank); //you can change the Bank after close all module gate. It is safe. } return 0; } void setIOUni(MCUGear *mcugear){ mcugear->setWire(IO_0, IO_REG_IN_DIR, 0); mcugear->setWire(IO_1, IO_REG_IN_DIR, 1); mcugear->setWire(IO_2, IO_REG_OUT_DIR, 2); mcugear->setWire(IO_3, IO_REG_OUT_DIR, 3); mcugear->setWire(IO_4, IO_REG_OUT_DIR, 4); }
2014年3月5日水曜日
Raspberry Pi Universal Module (Manual Mode with wiringPi)
Raspberry Pi Universal Module (Manual Mode with wiringPi)
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿