/* * Class: org_bulldog_beagleboneblack_jni_NativeGpio * Method: enableGpio * Signature: V */ JNIEXPORT void JNICALL Java_org_bulldog_beagleboneblack_jni_NativeGpio_enableGpio (JNIEnv * env, jclass clazz) { BBBIO_sys_Enable_GPIO(BBBIO_GPIO0); BBBIO_sys_Enable_GPIO(BBBIO_GPIO1); BBBIO_sys_Enable_GPIO(BBBIO_GPIO2); BBBIO_sys_Enable_GPIO(BBBIO_GPIO3); }
//------------------------------------------------------------------------------------- void keypad_4x4_init() { iolib_init(); BBBIO_sys_Enable_GPIO(BBBIO_GPIO2); // P8_39 / P8_41 / P8_43 / P8_45 as input // P8_40 / P8_42 / P8_44 / P8_46 as input // GPIO mapping reference from BBB_SRM , page 80 , "Table 11. Expansion Header P8 Pinout" BBBIO_GPIO_set_dir(BBBIO_GPIO2 , BBBIO_GPIO_PIN_12 |BBBIO_GPIO_PIN_10 |BBBIO_GPIO_PIN_8 |BBBIO_GPIO_PIN_6 , // input BBBIO_GPIO_PIN_13 |BBBIO_GPIO_PIN_11 |BBBIO_GPIO_PIN_9 |BBBIO_GPIO_PIN_7 ); // output }
void bbio::open(){ // GPIO init init(); init_pins(); // ALL 5 pins are HIGH except for GND init_DAConvAD5328(); //BBBIO init iolib_init(); BBBIO_sys_Enable_GPIO(BBBIO_GPIO1); BBBIO_GPIO_set_dir(BBBIO_GPIO1 , port_dout_SPI[0] , port_din_SPI[0] | port_clk_SPI[0] | port_cs_SPI[0]); BBBIO_GPIO_low(BBBIO_GPIO1 ,port_din_SPI[0]); BBBIO_GPIO_low(BBBIO_GPIO1 ,port_clk_SPI[0]); BBBIO_GPIO_low(BBBIO_GPIO1 ,port_cs_SPI[0]); }
//----------------------------------------------------------------- int main(void) { int del =5; iolib_init(); printf("init finish\n"); /* BBBIO_GPIO_set_dir(BBBIO_GPIO1 , 0 , BBBIO_GPIO_PIN_12 | BBBIO_GPIO_PIN_13 | BBBIO_GPIO_PIN_14 | BBBIO_GPIO_PIN_15 ); */ BBBIO_sys_Enable_GPIO(BBBIO_GPIO2); iolib_setdir(8,11, BBBIO_DIR_OUT); // Scan A iolib_setdir(8,12, BBBIO_DIR_OUT); // Scan B iolib_setdir(8,15, BBBIO_DIR_OUT); // Scan C iolib_setdir(8,16, BBBIO_DIR_OUT); // Scan D iolib_setdir(8,39, BBBIO_DIR_OUT); // Seg A iolib_setdir(8,40, BBBIO_DIR_OUT); // Seg B iolib_setdir(8,41, BBBIO_DIR_OUT); // Seg C iolib_setdir(8,42, BBBIO_DIR_OUT); // Seg D iolib_setdir(8,43, BBBIO_DIR_OUT); // Seg E iolib_setdir(8,44, BBBIO_DIR_OUT); // Seg F iolib_setdir(8,45, BBBIO_DIR_OUT); // Seg G iolib_setdir(8,46, BBBIO_DIR_OUT); // Seg . (point) printf("OK"); int count = 0; int DisplayNumber =1234 ; while(count < 200) { count ++ ; pin_low(8,11); Display_Number(DisplayNumber / 1000); iolib_delay_ms(del); pin_high(8,11); pin_low(8,12); Display_Number(DisplayNumber / 100); iolib_delay_ms(del); pin_high(8,12); pin_low(8,15); Display_Number(DisplayNumber / 10); iolib_delay_ms(del); pin_high(8,15); pin_low(8,16); Display_Number(DisplayNumber); iolib_delay_ms(del); pin_high(8,16); } BBBIO_sys_Disable_GPIO(BBBIO_GPIO2); iolib_free(); return(0); }
//----------------------------------------------------------------- int main(void) { struct timeval t_start,t_end; pid_t PID ; struct sched_param param; int maxpri = sched_get_priority_max(SCHED_FIFO); param.sched_priority =maxpri ; PID =getpid(); // sched_setscheduler(PID , SCHED_FIFO ,¶m ); iolib_init(); iolib_setdir(8,11, BBBIO_DIR_OUT); // Server motor iolib_setdir(8,12, BBBIO_DIR_OUT); iolib_setdir(8,15, BBBIO_DIR_OUT); iolib_setdir(8,16, BBBIO_DIR_OUT); iolib_setdir(8,22, BBBIO_DIR_OUT); iolib_setdir(8,23, BBBIO_DIR_OUT); BBBIO_sys_Enable_GPIO(BBBIO_GPIO2); BBBIO_GPIO_set_dir(BBBIO_GPIO2 , // key pad pin BBBIO_GPIO_PIN_12 |BBBIO_GPIO_PIN_10 |BBBIO_GPIO_PIN_8 |BBBIO_GPIO_PIN_6 , // input BBBIO_GPIO_PIN_13 |BBBIO_GPIO_PIN_11 |BBBIO_GPIO_PIN_9 |BBBIO_GPIO_PIN_7 ); // output int i , j ; // recover ActionPush(SM_BUTTOM ,90 ,0); ActionPush(SM_ARM1 ,90 ,0); ActionPush(SM_ARM2 ,110 ,0); ActionPush(SM_ARM3 ,150 ,0); ActionPush(SM_HAND ,90 ,0); ActionStart(); Angle_Arm_1 =90 ; Angle_Arm_2 =110 ; Angle_Arm_3 =150; Angle_Hand =90 ; Angle_Buttom = 90 ; //----------------------------------------- // create 4x4 scan therad pthread_t pid_4x4 ; int ret ; ret = pthread_create(&pid_4x4, NULL, (void *)Thread_4x4_scan, NULL); //----------------------------------------- usleep(100000); float max_Angle =0 ; for(j=0 ;j <5 ; j ++) { for(i=0 ; i<7 ;i++) { ActionPush(SM_BUTTOM ,Action[i][0] ,0); ActionPush(SM_ARM1 ,Action[i][1] ,0); ActionPush(SM_ARM2 ,Action[i][2] ,0); ActionPush(SM_ARM3 ,Action[i][3] ,0); ActionPush(SM_HAND ,Action[i][4] ,0); ActionStart(); } } /* while(key_status[3][3]==1) //f { ActionPush(SM_BUTTOM ,Angle_Buttom ,0); ActionPush(SM_ARM1 ,Angle_Arm_1 ,0); ActionPush(SM_ARM2 ,Angle_Arm_2 ,0); ActionPush(SM_ARM3 ,Angle_Arm_3 ,0); ActionPush(SM_HAND ,Angle_Hand ,0); ActionStart(); } */ ActionPush(SM_BUTTOM ,90 ,0); ActionPush(SM_ARM1 ,90 ,0); ActionPush(SM_ARM2 ,110 ,0); ActionPush(SM_ARM3 ,150 ,0); ActionPush(SM_HAND ,90 ,0); ActionStart(); //--------------------------- pthread_join(pid_4x4,NULL); printf("Finish\n"); iolib_free(); return(0); }