Skip to content
Snippets Groups Projects
Commit 3ab6b557 authored by Sergi Hernandez's avatar Sergi Hernandez
Browse files

added an example to test the basic features of the adapter

parent af17df27
No related branches found
No related tags found
No related merge requests found
#include "exceptions.h"
#include "usb_i2c.h"
#include <iostream>
const std::string usb_port="/dev/ttyUSB0";
const unsigned char dev_id=0x22;
int main(int argc, char *argv[])
{
CUSBI2C adapter("adapter");
int i=0;
try{
adapter.open(usb_port);
std::cout << "Firmware revision: " << (int)adapter.get_revision() << std::endl;
std::cout << "Turning the led off ..." << std::endl;
adapter.turn_led_off();
sleep(1);
std::cout << "Turning the led on ..." << std::endl;
adapter.turn_led_on();
std::cout << "Using the second general purose I/O as digital output ..." << std::endl;
adapter.config_gpio(gpio2,digital_output);
std::cout << " Outputing a high level ..." << std::endl;
adapter.set_gpio(gpio2,true);
sleep(2);
std::cout << " Outputing a low level ..." << std::endl;
adapter.set_gpio(gpio2,false);
sleep(2);
std::cout << "Using the second general purose I/O as digital input ..." << std::endl;
adapter.config_gpio(gpio2,digital_input);
std::cout << " Reading the current value ..." << std::endl;
for(i=0;i<10;i++)
{
if(adapter.get_gpio(gpio2))
std::cout << " high level." << std::endl;
else
std::cout << " low level." << std::endl;
usleep(500000);
}
std::cout << "Using the second general purose I/O as analog input ..." << std::endl;
adapter.config_gpio(gpio2,analog_input);
std::cout << " Reading the current value ..." << std::endl;
for(i=0;i<10;i++)
{
std::cout << " " << adapter.get_analog(gpio2) << std::endl;
usleep(500000);
}
std::cout << "Using the second general purose I/O as I2C ..." << std::endl;
adapter.config_gpio(gpio2,i2c);
std::cout << "Using the third general purose I/O as digital output ..." << std::endl;
adapter.config_gpio(gpio1,digital_output);
std::cout << " Outputing a high level ..." << std::endl;
adapter.set_gpio(gpio3,true);
sleep(2);
std::cout << " Outputing a low level ..." << std::endl;
adapter.set_gpio(gpio3,false);
sleep(2);
std::cout << "Using the third general purose I/O as digital input ..." << std::endl;
adapter.config_gpio(gpio3,digital_input);
std::cout << " Reading the current value ..." << std::endl;
for(i=0;i<10;i++)
{
if(adapter.get_gpio(gpio3))
std::cout << " high level." << std::endl;
else
std::cout << " low level." << std::endl;
usleep(500000);
}
std::cout << "Using the third general purose I/O as analog input ..." << std::endl;
adapter.config_gpio(gpio3,analog_input);
std::cout << " Reading the current value ..." << std::endl;
for(i=0;i<10;i++)
{
std::cout << " " << adapter.get_analog(gpio3) << std::endl;
usleep(500000);
}
std::cout << "Using the third general purose I/O as I2C ..." << std::endl;
adapter.config_gpio(gpio3,i2c);
std::cout << "Using the first general purose I/O as digital input ..." << std::endl;
adapter.config_gpio(gpio1,digital_input);
for(i=0;i<10;i++)
{
if(adapter.get_gpio(gpio1))
std::cout << " high level." << std::endl;
else
std::cout << " low level." << std::endl;
usleep(500000);
}
}catch(CException &e)
{
std::cout << e.what() << std::endl;
}
}
......@@ -180,6 +180,7 @@ short int CUSBI2C::get_analog(gpio_pins pin)
analog_value=answer[0]*256+answer[1];
else
analog_value=answer[2]*256+answer[3];
return analog_value;
}
else
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment