Gast
#2573135
Morgen,
hab mal ein Programm für eine ansteuerung eines Motors
geschrieben(unten).möchte jetzt nochmal einen zweiten Motor darüber
laufen lassen.bin mir aber nicht ganz sicher ob der ATmega8 2
PWM-Signale ausgeben kann und weiß nicht wie ich das Programm ändern
soll damit beide darüber laufen??
#include <avr/io.h>
#include <stdint.h>
void adc_init(void)
{
ADMUX = 0;
ADCSRA = (1<<ADEN)|(1<<ADPS2)|(1<<ADPS0);
}
void timer_init(void)
{
DDRB = (1 << PB1 );
TCCR1A = (1<<COM1A1) | (1<<WGM11);
TCCR1B = (1<<WGM13) | (1<<WGM12) | (1<<CS10);
ICR1 = 0x0080;
}
int main()
{
uint16_t buffer;
timer_init(); // Timer initialisieren
adc_init(); // A/D - Wandler initialisieren
OCR1A = 0x0000;
/*
Compare Wert
Wenn der Zähler diesen Wert erreicht, wird mit
obiger Konfiguration der OC1A Ausgang abgeschaltet
Sobald der Zähler wieder bei 0 startet, wird der
Ausgang wieder auf 1 gesetzt
*/
while( 1 )
{
ADCSRA |=(1<<ADSC);
while ( !(ADCSRA & (1<<ADIF)) )
;
Buffer=ADC;
OCR1A=(buffer>>3) ; // PWM Auflösung von 10bit auf 8bit
transformieren,
// da buffer_Register 10bit groß ist
}
}