int main(int argc, char **argv){ int sig = 1; int gpio_err = 0; int gpio_check =0; ros::init(argc, argv, "motor_controller_node"); ros::NodeHandle nh; ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("say_gpio", 1000); ros::Rate loop_rate(5); int count = 0; gpio_err = gpio_init(PIN); while(ros::ok() && gpio_err == 1){ std_msgs::String msg; std::stringstream ss; ss << "Signal: " << sig; msg.data = ss.str(); ROS_INFO("%s", msg.data.c_str()); chatter_pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); if(gpio_err == 1) gpio_check = gpio_on(PIN, sig); else std::cout << "GPIO Error\n"; sig = 1 - sig; } return 0; }
void system_init() { /* Stop the watchdog */ startup_watchdog_disable(); /* Do it right now, before it gets a chance to break in */ /* Note: Brown-Out detection must be powered to operate the ADC. adc_on() will power * it back on if called after system_init() */ system_brown_out_detection_config(0); system_set_default_power_state(); clock_config(SELECTED_FREQ); set_pins(common_pins); gpio_on(); /* System tick timer MUST be configured and running in order to use the sleeping * functions */ systick_timer_on(1); /* 1ms */ systick_start(); }
void led_on( uint8_t id) { gpio_on(id); }