PDA

Επιστροφή στο Forum : Κάποιος καλός atmelακιας???? (pwm fuction)



bill.lask
22-06-15, 14:24
γεια σας θα ήθελα την βοήθεια σας για κάτι που ψαχνό εδώ και καιρό
θέλω να οδηγήσω ένα solenoid με έναν επεξεργαστή atmel
Το θέμα μου είναι ότι τα solenoid λειτουργούν σε πολύ χαμηλότερη συχνότητα από ότι το pwm του επεξεργαστή
ξέρει κανεις πως να φτιαξω μια συνάρτηση οποία να κάνει το pwm στην επιθυμητή συχνότητα 10-50hz??

gsouf
22-06-15, 15:54
http://roboexperiments.com/beginners-guide-avr-pwm-frequency-duty-cycle/

καλο διάβασμα!

bill.lask
22-06-15, 18:53
καταλαβα στο περιπου πως υπολογιζουμε τις τιμες
αλλα δν ξερω πως αυτο θα το γραψω σε καποιο timer interrupt
θα μπορουσες να με βοηθησεις?

bill.lask
22-06-15, 19:41
#include <avr/io.h>



int main(void){

DDRD = 0xff;

TCCR1A = 0;

TCCR1B = 0;

TCCR1A |= ( 1<<COM1B1 | //non-inverted mode

1<<COM1B0 |

1<<WGM11 ); //fast PWM (14) ,



TCCR1B |= ( 1<<WGM12 |

1<<WGM13 |

1<<CS10); //prescale 1

int top=(16000000/ (1*frequency))-1
int dt=(duty/100)*top

ICR1 = top;



while(1){

OCR1B = ICR1 - dt;

}



}



καπως ετσι δεν γινεται η συναρτηση ωστε να της δινω το frequensy,duty και να κανει το pwm?αλλα πως αυτο θα το βαλω σε εναν timer?

xmaze
22-06-15, 20:04
αλλα πως αυτο θα το βαλω σε εναν timer?

τι εννοείς;