You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
197 lines
3.2 KiB
197 lines
3.2 KiB
#include "gpio.hpp"
|
|
#include "../../systems/systemCall.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
#define PIN_COUNT 27
|
|
class Gpio::gpioImpl
|
|
{
|
|
public:
|
|
uint8_t pinCount = PIN_COUNT;
|
|
|
|
uint8_t currentPin = 0;
|
|
|
|
enum functionality
|
|
{
|
|
undefined,
|
|
gpio,
|
|
i2c,
|
|
spi,
|
|
pwm,
|
|
pcm,
|
|
uart,
|
|
eeprom,
|
|
clk
|
|
};
|
|
|
|
functionality pins[PIN_COUNT + 1];
|
|
|
|
gpioImpl()
|
|
{
|
|
printf("implementation of Gpio Sucsessfull\n");
|
|
pins[1] = eeprom;
|
|
pins[2] = i2c;
|
|
pins[3] = i2c;
|
|
pins[4] = clk;
|
|
pins[5] = gpio;
|
|
pins[6] = gpio;
|
|
pins[7] = spi;
|
|
pins[8] = spi;
|
|
pins[9] = spi;
|
|
pins[10] = spi;
|
|
pins[11] = spi;
|
|
pins[12] = pwm;
|
|
pins[13] = pwm;
|
|
pins[14] = uart;
|
|
pins[15] = uart;
|
|
pins[16] = gpio;
|
|
pins[17] = gpio;
|
|
pins[18] = pcm;
|
|
pins[19] = pcm;
|
|
pins[20] = pcm;
|
|
pins[21] = pcm;
|
|
pins[22] = gpio;
|
|
pins[23] = gpio;
|
|
pins[24] = gpio;
|
|
pins[25] = gpio;
|
|
pins[26] = gpio;
|
|
pins[27] = gpio;
|
|
|
|
for(currentPin = 0; currentPin <= pinCount; currentPin ++)
|
|
{
|
|
printf("Pin %d %d\n",currentPin, pins[currentPin]);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
void setMode(uint8_t gpioNo, Gpio::pinMode mode)
|
|
{
|
|
|
|
}
|
|
|
|
void setOutputState(uint8_t gpioNo, Gpio::pinState state)
|
|
{
|
|
|
|
}
|
|
|
|
void setPullUpDonw(uint8_t gpioNo, Gpio::pinPullUpDown resistance)
|
|
{
|
|
|
|
}
|
|
|
|
void setSpeed(uint8_t gpioNo, Gpio::pinSpeed speed)
|
|
{
|
|
|
|
}
|
|
|
|
void config(uint8_t gpioNo, Gpio::pinMode mode, Gpio::pinState state, Gpio::pinPullUpDown resistance, Gpio::pinSpeed speed)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
uint8_t readPin(uint8_t gpioNo)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void writePin(uint8_t gpioNo, uint8_t value)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
uint16_t readRange(uint8_t start, uint8_t stop)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
void writeRange(uint8_t start, uint8_t stop, uint16_t value)
|
|
{
|
|
|
|
}
|
|
|
|
|
|
void pinBlock(uint8_t gpioNo)
|
|
{
|
|
|
|
}
|
|
|
|
void pinUnblock(uint8_t gpioNo)
|
|
{
|
|
|
|
}
|
|
|
|
void throwError(Gpio::errors errNo)
|
|
{
|
|
|
|
}
|
|
|
|
};
|
|
|
|
Gpio::Gpio():gpioPimpl(new gpioImpl()){}
|
|
Gpio::~Gpio(){}
|
|
|
|
|
|
void Gpio::setMode(uint8_t gpioNo, Gpio::pinMode mode)
|
|
{
|
|
return gpioPimpl->setMode(gpioNo, mode);
|
|
}
|
|
|
|
void Gpio::setOutputState(uint8_t gpioNo, Gpio::pinState state)
|
|
{
|
|
return gpioPimpl->setOutputState(gpioNo,state);
|
|
}
|
|
|
|
void Gpio::setPullUpDonw(uint8_t gpioNo, Gpio::pinPullUpDown resistance)
|
|
{
|
|
return gpioPimpl->setPullUpDonw(gpioNo,resistance);
|
|
}
|
|
|
|
void Gpio::setSpeed(uint8_t gpioNo, Gpio::pinSpeed speed)
|
|
{
|
|
return gpioPimpl->setSpeed(gpioNo, speed);
|
|
}
|
|
|
|
void Gpio::config(uint8_t gpioNo, Gpio::pinMode mode, Gpio::pinState state, Gpio::pinPullUpDown resistance, Gpio::pinSpeed speed)
|
|
{
|
|
return gpioPimpl->config(gpioNo,mode,state,resistance,speed);
|
|
}
|
|
|
|
uint8_t Gpio::readPin(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->readPin(gpioNo);
|
|
}
|
|
|
|
void Gpio::writePin(uint8_t gpioNo, uint8_t value)
|
|
{
|
|
return gpioPimpl->writePin(gpioNo, value);
|
|
}
|
|
|
|
uint16_t Gpio::readRange(uint8_t start, uint8_t stop)
|
|
{
|
|
return gpioPimpl->readRange(start,stop);
|
|
}
|
|
|
|
void Gpio::writeRange(uint8_t start, uint8_t stop, uint16_t value)
|
|
{
|
|
return gpioPimpl->writeRange(start,stop,value);
|
|
}
|
|
|
|
void Gpio::pinBlock(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->pinBlock(gpioNo);
|
|
}
|
|
|
|
void Gpio::pinUnblock(uint8_t gpioNo)
|
|
{
|
|
return gpioPimpl->pinUnblock(gpioNo);
|
|
}
|
|
|
|
void Gpio::throwError(Gpio::errors error)
|
|
{
|
|
return gpioPimpl->throwError(error);
|
|
}
|
|
|