Files
RGBController/main.cpp
2017-05-16 10:37:01 +02:00

75 lines
1.7 KiB
C++

#include <avr/io.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include "serial.h"
#include "writepin.h"
#include "WirelessRelay.h"
#include "pwm.h"
bool serialDispatch(Serial* serial , WirelessRelay* relayOne, WirelessRelay* relayTow, WirelessRelay* relayThree, WirelessRelay* relayFour)
{
if(serial->dataIsWaiting())
{
char buffer[20];
const int length = serial->getString(buffer, 7);
}
return false;
}
int main()
{
DDRB = 0xFF;//= (1 << PB5) | ( 1 << PB1);
DDRD = 0xFF;//= (1 << PD3) | (1 << PD5);
PORTB = 0x00;
sei();
Serial serial;
/* Pwm16b pwmA;
pwmA.setDuty(10);
pwmA.on();*/
Pwm8b pwmTc0( &TCCR0A, &TCCR0B, &OCR0A, &OCR0B );
//pwmB.on();
Pwm8b pwmTc2( &TCCR2A, &TCCR2B, &OCR2A, &OCR2B, 0b00000101, false, true );
//pwmTc0.setDutyA(10);
//pwmTc0.setDutyB(10);
pwmTc2.setDutyB(128);
/*
//fast 8 bit PWM pwm A
TCCR0A|= (1<<COM0A1) | (1<<COM0B1);
TCCR0A|=(1<<WGM01) | (1<<WGM00);
//start with /1024 prescaller
TCCR0B =(1 << CS00) | (1 << CS01);*/
WirelessRelay relayOne(&PORTB, PB5, 0b1001110000000000);
WirelessRelay relayTow(&PORTB, PB5, 0b1001101000000000);
WirelessRelay relayThree(&PORTB, PB5, 0b1001100100000000);
WirelessRelay relayFour(&PORTB, PB5, 0b1001100010000000);
serial.putString("RGBController v0.1 starting\n");
uint8_t duty = 0;
while(true)
{
serialDispatch(&serial, &relayOne, &relayTow, &relayThree, &relayFour);
pwmTc0.setDutyA(duty);
pwmTc0.setDutyB(duty);
pwmTc2.setDutyB(duty);
duty++;
_delay_us(50000);
}
return 0; //master interupt.
}