Show Posts
Pages: 1 ... 4 5 [6] 7 8 ... 18
76  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 08:49:57 am
Certo ognuno ha le sue priorità, hai ragione  smiley-cool

Ti ringrazio se ci dai un occhiata.
Non fa differenza metterlo come input o azzerare TCCR1A credo..

Secondo me appena il contatore parte va subito dentro la ISR di compare.
77  International / Software / Re: centralina accensione motore on: September 13, 2013, 08:44:49 am
Mi posti per favore uno schema completo?  smiley-grin
Quindi il tuo oscillatore (555) va a 50Hz?? Di solito lo si realizza a frequenza di 20-30kHz per ridurre le dimensioni del trasfo HV.

7000 RPM per quanti cilindri?
78  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 08:32:39 am
Capisco che è venerdi e si è stanchi, ma davvero nessuno riesce ad aiutarmi?
Dove sono i maghi dei timer?  smiley-mr-green
79  International / Software / Re: centralina accensione motore on: September 13, 2013, 07:57:02 am
No beh, io dico in generale  smiley-cool
Non sto mica dando colpe a nessuno....solo consigli.
Mi spiegate il condensatore da 47uF in uscita al ponte?
80  International / Software / Re: centralina accensione motore on: September 13, 2013, 06:55:01 am
Magari guarda, io sto in zona Ferrara, un pò lontanuccio, ma mi piacerebbe fare dei test.
Se devi comunque rifare lo schema e decidi di farlo come ti ho detto posso aiutarti.
Se hai bisogno di consigli e forse ne avrai, ci sono....sai com'è....con delle scintille in giro il micro impazzisce!
81  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 06:35:14 am
Io prima facevo così:
Code:
void SensorINPUT()

    OCR1A=1000;
    TCCR1B |= (1 << CS11);
 }

ISR(TIMER1_COMPA_vect)
{
  digitalWrite(4,1);

  TCCR1B &= ~(1 << CS11);

}

Ovviamente utilizzavo l'uscita 4 che poi nel loop abbassavo quando volevo.
Ora vorrei solamente che il timer alzasse la sua uscita che è la 9 in modo da risparmiare tempo.
82  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 05:04:02 am
Ce nessunooooo??  smiley-grin smiley-grin smiley-grin
83  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 04:15:14 am
Guarda il primo codice che ho postato è proprio così che va.
Cioè, arriva il segnale sul pin 2, sul fronte di discesa chiama la SensorINPUT() routine e li dentro faccio partire il timer1 e aggancio il pin 9 (uscita).
Il timer è configurato in CTC nel setup.
Quando finisce di contare mi chiama la sua routine dove azzero TCCR1A , cioè scollego il pin di uscita.

Il problema è che invece di mandare alto il pin 9 dopo 500us, lo manda alto subito (sul fronte di discesa di pin2) e dopo 500us lo tira giu.

Questo è il problema. Spero sia più chiaro ora.
Fammi sapere.
Grazie
84  International / Software / Re: centralina accensione motore on: September 13, 2013, 03:57:36 am
Scusa ma pensi che 47uF siano il valore giusto per caricarlo in tempo e scoccare la scintilla?
A che RPM vuoi arrivare?
Hai fatto calcoli su energia e potenza richiesta alla alimentazione?

EDIT: se la scheda è da rifare ti consiglio di farla in modo diverso.
Intanto il 555 non è così stabile in frequenza come sembra, provato sulla mia pelle.
Poi, perchè fare uno stadio invertitore a bjt quando esistono dei bellissimi integrati che fanno già questo? vedi TC4428, nato per il tuo scopo e pilota i MOSFET a meraviglia (spero stai usando mosfet).
Inoltre perchè usare un oscillatore quando arduino te lo può fare con il duty cycle che vuoi?
Io lo sto esattamente facendo con arduino nano che mi fa il pwm su due uscite in modo complementare e con il proprio duty cycle controllabile da 0 a 50% e in uscita piloto un TC4427 che mi fa da amplificatore e driver per i mos.
Se vuoi posso postare un pò di cosucce se sei interessato a prendere in considerazione il cambio di design....sennò rimango solo per qualche consiglio  smiley-grin

Credimi c'è molto da sapere, sono due anni che ci lavoro su CDI e IDI comandate a microprocessore e prima di arrivare all'ottimo ne sono passate di mille fori da buttare e componenti bruciati.

ps: per tutti i componenti del progetto di electro you avrò speso sui 30 euri più arduino.
85  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 03:54:39 am
 smiley Molto semplicemente sul fronte di discesa del segnale di ingresso (o di salita non importa) vorrei che dopo per es. 500us grazie al CTC del timer1 mi andasse alta l'uscita collegata (PD9) e che poi spengo io quando voglio.

Lo sketch che ho messo per ultimo è una cosa simile a quella che vorrei e che ho trovato in rete. Se si riesce a far funzionare anche quello può andare bene. Lui sfrutta Input capture e io invece uso attachInterrupt.

A me serve valutare i tempi di risposta dei metodi, sarebbe bello provarli entrambi.
86  International / Software / Re: Timer1 in CTC come generatore di impulsi on: September 13, 2013, 01:42:31 am
I maestri dei timer sono al lavoro per una soluzione ?  smiley-grin smiley-grin smiley-grin smiley-grin

Avevo trovato una soluzione di questo tipo anche, ma c'è qualcosa di sbagliato. Qui setta il timer in "input captur" e poi in CTC per alzare l'uscita.

Code:
/********************************************************************
**       
**                  -Input Capture Interupt-
**
**      -Input capture interupt trigger on falling edge
**
**       _____
** <- __|     |_____________________________________
**            ^
**            ^ICR1
**
**     -Output, Turn LED on at falling egde of input
**     -Turn LED off at falling edge (ICR1) + 10ms (10000 tics)
**             _______________________________________
** ___________|           LED_ON                      |_______
**            ^                                       ^
**            ^ICR1                                   ^ICR1+10000
**
*********************************************************************/
void Init_Timer1(void)
{
   TCCR1B =   (1<<ICNC1)   |          //Enable input capture noise canceler
            (1<<CS11)   ;         //Set timer clock prescale to Fs/8 = 1us per timer tic   
   
   TIFR =      (1<<ICF1)   |         //Clear any possible pending interupts
            (1<<TOV1)   |
            (1<<OCF1A)   ;
               
   TIMSK =    (1<<TICIE1)   ;         //Enable Input capture interupt
             
}

ISR(TIMER1_CAPT_vect)
{   
   OCR1A = (ICR1+10000);                 //Set output compare register to turn LED off
   TCCR1A = (1<<COM1A1) | (1<<COM1A0);   //Compare mode: Set on compare match
   TCCR1A |= (1<<FOC1A);               //Force compare!
   TCCR1A = (1<<COM1A1);                 //Compare mode: clear on compare match
   TIMSK1 |= (1<<OCIE1A);               //Enable Compare ISR
    TIFR |= (1<<OCF1A);               //Clear any pending compare ISR
   
}

ISR(TIMER1_COMPA_vect)
{
   TCCR1A = 0;                        //Disconnect OC1A pin from timer
   TIMSK1 &=~ (1<<OCIE1A);               //Disable compare interrupt
}

L'ho provato ma non funziona....help!  smiley-grin
87  International / Software / Re: centralina accensione motore on: September 13, 2013, 01:39:37 am
Certo fai bene a finire ciò che hai iniziato.  smiley-cool
Scusa se te lo chiedo, ma potresti spiegarmi il problema in cui sei incappato?
Magari ti posso aiutare dato che ci sono già passato su tutti i problemi con dei dc switching tipo boost ..... e ti giuro che ne ho fatti di circuiti prima di arrivare al top!  smiley
88  International / Software / Re: centralina accensione motore on: September 12, 2013, 05:24:41 pm
Scusa Lucaleo se mi intrometto solo ora ma ho notato questo topic.
Ho realizzato una CDI che fino a 15000 rpm mantiene sempre la stessa energia alla scintilla....e che energia.
Qui puoi trovare il link: http://www.electroyou.it/forum/viewtopic.php?f=1&t=38868

Ora ne sto realizzando un altra con trasformatore avvolto tipo la tua e già dai test va alla grande.
Se hai bisogno di qualcosa chiedi!

Ciao
89  International / Software / Timer1 in CTC come generatore di impulsi on: September 12, 2013, 05:11:19 pm
Ciao ragazzi,
ho ripreso in mano il progetto che avevo iniziato per generare un impulso ritardato rispetto il fronte del segnale d'ingresso (ard UNO).
Vorrei invece che tirare su un output qualsiasi quando il timer1 arriva a OCR1A con il valore di TCNT1, si alzi direttamente l'uscita collegata a quel timer, tipo il pin 9.
Allora ho scritto questo codice ma non funziona come vorrei.

Code:
void setup()
{

    pinMode(9,OUTPUT);

// initialize Timer1
    cli();          // disable global interrupts
    TCCR1A = 0;     // set entire TCCR1A register to 0
    TCCR1B = 0;     // same for TCCR1B
    // set compare match register to desired timer count:
    // turn on CTC mode:
    TCCR1B |= (1 << WGM12);
    TCCR1B &= ~(1 << WGM10);
    TCCR1B &= ~(1 << WGM11);
   
    TCCR1A |= (1<<COM1A1);
    TCCR1A |= (1<<COM1A0);
    // enable timer compare interrupt:
    TIMSK1 |= (1 << OCIE1A);
   
    // enable global interrupts:
    sei();
   
    attachInterrupt(0, SensorINPUT, FALLING);
}


void SensorINPUT()

    OCR1A=1000;
    TCCR1B |= (1 << CS11);
    TCCR1A |= (1<<COM1A1);
    TCCR1A |=  (1<<COM1A0);

 
}

ISR(TIMER1_COMPA_vect)
{
  TCCR1A=0;

  TCCR1B &= ~(1 << CS11);

}

Quello che succede è che sul fronte di discesa del segnale d'ingresso mi si alza l'uscita 9 con durata (500us=1000*0.5, con prescaler=8).
Io vorrei invece che dopo 500us che ho avuto il fronte mi si alza l'uscita.

Cosa devo cambiare?
90  International / Software / Re: DISPLAY E PROGMEM on: September 07, 2013, 11:43:44 am
Credevo che una stampa su lcd occupasse comunque ram.
Chiedo venia  smiley-roll

Come posso fare a limitare i rallentamenti dovuti a lcd.print?
Pages: 1 ... 4 5 [6] 7 8 ... 18