/* * Spi.h * * Created: 06.11.2013 15:41:34 * Author: netz */ #ifndef SPI_H_ #define SPI_H_ #include #include #include "hardware/pin.hpp" template class Spi { public: Spi() { this->init(); } void CSOn() { cs::make_low(); } void CSOff() { cs::make_high(); } uint8_t send(uint8_t data) { if(mode == 0) { return this->send_hard(data); } return this->send_soft(data); } uint8_t has_data() { return !miso::read(); } private: const typedef avrlib::pin cs; const typedef avrlib::pin miso; const typedef avrlib::pin mosi; const typedef avrlib::pin sck; void init() { this->init_port(); if(mode == 0) { this->init_spi(); } } void init_port() { mosi::make_low(); //output und low; sck::make_low(); //output und low; cs::make_high(); //output und low; miso::make_input(); //input und low; } void init_spi() { SPCR = (1<