CITAZIONE (ElettroshockNow, 15/03/2015 17:17:24 )
Quote:CITAZIONE (inverter90, 15/03/2015 17:07:20 )
Quote:L'impostazione di timer 0 va nel void loop?
-abilitaz. int. Su Out Compare Match( TIMSK2 = (1 << OCIE2A); )
Era questo il problema...
Provato con il led e mettendo un potenziometro su A1 (retroazione) il led in base alla rotazione si stabilizza o lampeggia. Il codice è questo.
#include "avr/pgmspace.h"
#include "avr/io.h"
#include <avr/interrupt.h>
PROGMEM prog_uchar sine256[] =
{
0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,16,
18,20,21,23,25,27,29,31,33,35,37,39,42,44,46,49,51,54,56,59,
62,64,67,70,73,76,78,81,84,87,90,93,96,99,102,105,108,111,115,118,
121,124,127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176,178,
181,184,187,190,192,195,198,200,200,198,195,192,190,187,184,181,178,176,173,170,
167,164,161,
158,155,152,149,146,143,139,136,133,130,127,124,121,118,115,111,108,105,102,99,
96,93,90,87,84,81,78,76,73,70,67,64,62,59,56,54,51,49,46,44,
42,39,37,35,33,31,29,27,25,23,21,20,18,16,15,14,12,11,10,9,
7,6,5,5,4,3,2,2,1,1,1,0,0,0
};
int PWM_Out;
int pwm;
int valore=4;//valore feedback desiderato
int err; //errore rilevato
int deadTime=5;
int t=1; //tempo di campionamento
int Kp=10; // Guadagno proporzionale
int Ki=10; // Guadagno Integrale
int Kd=0; // Guadagno Derivata
int P; //PROPORZIONALE
int D; //derivata
int I; //INTEGRALE
void setup() {
pinMode (9, OUTPUT);
pinMode (10, OUTPUT);
TCCR1A = _BV (COM1A1)