Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #15 on: January 09, 2013, 12:11:32 pm » |
Anche perchè il codice di Leo non mi funziona. TCCR4A = ((1<<COM4A0) | (1<<WGM40)); TCCR4B = (1<<CS40); OCR4A = 105; Sul pin 6, dichiarato come output non accade nulla e non riesco a spiegarmi il perchè. Spero ancora nel vostro aiuto. Grazie Hai messo il pinMode(6, OUTPUT) ?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 56
|
 |
« Reply #16 on: January 10, 2013, 03:26:15 am » |
Hai messo il pinMode(6, OUTPUT) ?
Si ma niente! Sull'oscilloscopio ho sempre un segnale a 0V. Tu l'hai provato?  ma no Etan, mica mi riferivo a te! Sul resto devi aspettare Leo, il mago è lui in queste cose.... Scusa Michele non avevo capito. Grazie per il tuo prezioso aiuto.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #17 on: January 10, 2013, 03:30:53 am » |
Hai messo il pinMode(6, OUTPUT) ?
Si ma niente! Sull'oscilloscopio ho sempre un segnale a 0V. Tu l'hai provato? Ho provato sull'Arduino UNO, usando i corrispondenti pin OC0A e OC1A, ed a me i led si accendono. A questo punto ho dei dubbi sulla corrispondenza fra canali dei timer e pin dell'Arduino MEGA dello schema che ho allegato alcuni post fa.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10228
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #18 on: January 10, 2013, 04:02:38 am » |
e questa mi sembra la stessa storia dell'altro Topic, evidentemente il problema è proprio la non corrispondenza dei timer 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #19 on: January 10, 2013, 04:24:28 am » |
Boh. Ho ricontrollato ora, OC4A è su D6, sulla MEGA.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 56
|
 |
« Reply #20 on: January 10, 2013, 05:30:59 am » |
sembra più complicato del previsto....  come se ne esce, avete qualche idea ? Se provassimo a settare i registri in un altro modo?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #21 on: January 10, 2013, 06:30:39 am » |
L'unica alternativa facile potrebbe essere questa: http://arduino.cc/forum/index.php/topic,117425.0.htmlSi chiama PWM Frequency Library e dovrebbe poter generare un segnale PWM di sequenza a scelta sia su UNO che su MEGA. Provala.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 56
|
 |
« Reply #22 on: February 24, 2013, 11:04:51 am » |
Cmq prova queste righe di codice messe nel setup. Dovrebbero impostare il timer 4 dell'Atmega2560 in modalità Phase Correct PWM ad 8 bit con top fissato da OCR4A. se non ho fatto male i conti, hai i tuoi 38095 Hz sul pin D6.
TCCR4A = ((1<<COM4A0) | (1<<WGM40)); TCCR4B = (1<<CS40); OCR4A = 105;
Dopo qualche tempo ho ripreso in mano il progetto della barriera IR. Il codice di leo funziona sul pin d6 del mega, ma la frequenza purtroppoè pari a 31Khz circa e non 38 come desiderato. Variando OCR4A non cambia nulla, qualcuno ha avuto modo di provare se va?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #23 on: February 24, 2013, 11:35:58 am » |
Mi sa che ho fatto male i conti, usando una modalità sbagliata del timer. Riprova così: TCCR4A = ((1<<COM4A0) | (1<<WGM41) | (1<<WGM40)); TCCR4B = ((1<<CS40) | (1<<WGM43)); OCR4A = 105;
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Jr. Member
Karma: 0
Posts: 56
|
 |
« Reply #24 on: February 26, 2013, 08:42:16 am » |
Così è perfetto, ho i 38Khz sul d6! Sei un grande leo.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16431
Don't know what I do
|
 |
« Reply #25 on: February 26, 2013, 09:21:11 am » |
Così è perfetto, ho i 38Khz sul d6! Sei un grande leo.

|
|
|
|
|
Logged
|
|
|
|
|
|