added gpio for raspberry but not tested

interrupts
key 4 years ago
parent acdec3c387
commit 98b19db1cb

@ -1,9 +1,9 @@
#add_library(rpiGpio gpio.cpp) add_library(rpiGpio gpio.cpp)
#target_compile_options(rpiGpio PRIVATE ${C_FLAGS}) target_compile_options(rpiGpio PRIVATE ${C_FLAGS})
#target_compile_definitions(rpiGpio PRIVATE ${C_DEFS}) target_compile_definitions(rpiGpio PRIVATE ${C_DEFS})
#target_include_directories(rpiGpio PRIVATE ${INTERFACES_DIR} ../Inc) target_include_directories(rpiGpio PRIVATE ${INTERFACES_DIR} ../Inc)
#add_library(sub::gpio ALIAS rpiGpio) add_library(sub::gpio ALIAS rpiGpio)
add_library(rpiDelay delay.cpp) add_library(rpiDelay delay.cpp)

@ -1,12 +1,17 @@
#include "pin.hpp" #include "pin.hpp"
#include "systemCall.hpp" #include "systemCall.hpp"
#include <fstream>
#include <iostream>
Pin::Pin()
{
char buffer[50]; char buffer[50];
char gpioNo = 17;
uint8_t currentPin = 0; uint8_t currentPin = 0;
int ck = 0; int ck = 0;
std::ifstream bufFile; std::ifstream bufFile;
Pin::Pin()
{
} }
Pin::~Pin() Pin::~Pin()
@ -20,12 +25,10 @@ void Pin::setMode(mode mode)
{ {
case input: case input:
sprintf(buffer, "echo \"in\" > /sys/class/gpio/gpio%d/direction",gpioNo); sprintf(buffer, "echo \"in\" > /sys/class/gpio/gpio%d/direction",gpioNo);
pins[gpioNo].mode = mode;
system(buffer); system(buffer);
break; break;
case output: case output:
sprintf(buffer, "echo \"out\" > /sys/class/gpio/gpio%d/direction",gpioNo); sprintf(buffer, "echo \"out\" > /sys/class/gpio/gpio%d/direction",gpioNo);
pins[gpioNo].mode = mode;
system(buffer); system(buffer);
break; break;
case analog: case analog:
@ -35,7 +38,6 @@ void Pin::setMode(mode mode)
std::cout << "No analog pins are awailable for raspberry" << std::endl; std::cout << "No analog pins are awailable for raspberry" << std::endl;
break; break;
default : default :
throwError(__LINE__,notValidMode);
break; break;
} }
} }
@ -91,11 +93,11 @@ void Pin::write(bool state)
{ {
if(state == 1) if(state == 1)
{ {
sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",value,gpioNo); sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",state,gpioNo);
system(buffer); system(buffer);
return; return;
} }
sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",value,gpioNo); sprintf(buffer, "echo \"%d\" > /sys/class/gpio/gpio%d/value",state,gpioNo);
system(buffer); system(buffer);
} }
@ -124,10 +126,6 @@ void Pin::deInit()
sprintf(buffer, "echo \"%d\" > /sys/class/gpio/unexport",gpioNo); sprintf(buffer, "echo \"%d\" > /sys/class/gpio/unexport",gpioNo);
system(buffer); system(buffer);
} }
else
{
throwError(__LINE__,pinNotDeclared);
}
} }

@ -27,3 +27,4 @@ set (CPP_DEFS ${C_DEFS})
list(APPEND EXTRA_LIBS sub::translator) list(APPEND EXTRA_LIBS sub::translator)
list(APPEND EXTRA_LIBS sub::delay) list(APPEND EXTRA_LIBS sub::delay)
list(APPEND EXTRA_LIBS sub::gpio)

@ -1,10 +1,11 @@
#include "bsl_raspberry.hpp" #include "bsl_raspberry.hpp"
#include "../csl/interfaces/delay.hpp" #include "../csl/interfaces/delay.hpp"
#include "../csl/interfaces/pin.hpp"
int startBSL() int startBSL()
{ {
int i = 0; int i = 0;
Pin pin;
Delay delay; Delay delay;
for(i=0; i < 5; i++) for(i=0; i < 5; i++)

Loading…
Cancel
Save