Exemplo n.º 1
0
void bl3_motor_step(BL3MotorFD motor)
{

	BL3Motor * mymot =  bl3_motors->motors[motor];
	bl3_motor_turn_off(motor);
	analog_write(mymot->pin_current, mymot->current);
	switch(mymot->status)
	{
		case (0):
		{
			write_pin(mymot->pin_1_H, HIGH);
			write_pin(mymot->pin_2_L, HIGH);
			mymot->status++;
		}break;
		case (1):
		{
			write_pin(mymot->pin_3_H, HIGH);
			write_pin(mymot->pin_2_L, HIGH);
			mymot->status++;
		}break;
		case (2):
		{
			write_pin(mymot->pin_3_H, HIGH);
			write_pin(mymot->pin_1_L, HIGH);
			mymot->status++;
		}break;
		case (3):
		{
			write_pin(mymot->pin_2_H, HIGH);
			write_pin(mymot->pin_1_L, HIGH);
			mymot->status++;
		}break;
		case (4):
		{
			write_pin(mymot->pin_2_H, HIGH);
			write_pin(mymot->pin_3_L, HIGH);
			mymot->status++;
		}break;
		case (5):
		{
			write_pin(mymot->pin_1_H, HIGH);
			write_pin(mymot->pin_3_L, HIGH);
			mymot->status = 0;
		}break;
		default:
		{
			// not good :-0
			mymot->status = 0;
		}
	}
}
Exemplo n.º 2
0
int main(void)
{

    setup();

    while(1)
    {
        x = x + PI * 0.01;
        if(x >= PI)x = 0;
        y = 2000 - (sin(x) + 1) * 1000;

        analog_write(&PB8, y);
        delay_ms(10);
    }


}