Hallo zusammen. Ich zerreiße mir gerade den Kopf, da ich jetzt schon 30
verschiedene Codes ausprobiert habe, aber keiner bei mir funktioniert
hat -.-
Könnt ihr mir mal sagen wo der Fehler liegt bitte??
[¢]
#include <avr/io.h>
int main(void){
DDRB = 0xFF;
while(1)
{
TCCR0A |= (1 << COM0A1);
OCR0A = 250; // set pwm duty
}
return 0;
}
[/c]
Danke für die Hilfe
Gast
#3007563
Hi
>aber keiner bei mir funktioniert hat -.-
Du solltest dem ATMega auch sagen, das er in einem PWM-Mode laufen soll.
Stichwort WGM-Bits.
MfG Spess
Gast
#3007565
initialisierungs routinen sind nicht zum spaß da!
So gehts auch nicht... was fehlt noch?
#include <avr/io.h>
int main(void){
DDRB = 0xFF;
TCCR0A |= (1 << COM0A1) | (1 << WGM00) | (1 << WGM01) | (1 << WGM02);
OCR0A = 250; // set pwm duty
while(1)
{
}
return 0;
}
Gast
#3007590
> TCCR0A |= (1 << COM0A1) | (1 << WGM00) | (1 << WGM01) | (1 << WGM02);
WGM02 liegt nicht in TCCR0A.
So noch mal ein update.. geht aber immer noch nicht...
#include <avr/io.h>
int main(void){
TCCR0A |= (1 << COM0A1) | (1 << WGM00) | (1 << WGM01);
TCCR0B = TCCR0B | (1 << CS02) | (1 << CS01) | (1 << CS00) | (1 <<
WGM02);
OCR0A = 250; // set pwm duty
DDRB |= (1 << DDB7);
while(1)
{
}
return 0;
}
Wahllos einfach irgendwelche Bits setzen führt auch nicht zum Erfolg! Welchen Modus hast du denn jetzt aktiviert? Welche Voraussetzungen hat dieser Modus und welche Nebenbedingungen? Solange du noch nicht fit bist, ... nimm einen Fast-PWM Modus mit konstanter Bitzahl.
Gast
#3007625
Mach das | (1 << WGM02) mal weg.
Habe das WGM02 Bit entfernt... aber ich bekomme ünerhaupt keinen output auf B7...
Basti Himmi schrieb: > Habe das WGM02 Bit entfernt... aber ich bekomme ünerhaupt keinen output > auf B7... Was erwartest du denn und womit misst du das? mfg.
Also mein Problem hat sich jetzt verändert... Die PWM funktioniert jetzt, allerdings ist die Ausgangsspannung zu niedrig. der Aktuelle Code für den Port: DDRE |= (1 << 4); TCCR3A |= (1 << COM3B1) | (1 << WGM30) | (1 << WGM31); TCCR3B |= (1 << CS31) | (1 << WGM32); OCR3B = val; bei ( val = 254) bekomme ich gerade einmal eine Spannnung von 1V. Ich bräuchchte aber 5V Was ist hier noch falsch?
>bei ( val = 254) bekomme ich gerade einmal eine Spannnung von 1V.
Worüber hast Du das gemessen? Ist da überhaupt eine Last dran, an der
die
Spannung abfallen kann, oder hängt der Ausgang nur in der Luft und Du
mit dem Meßgerät dran?
Dann siehst Du nichts Anständiges.
MfG Paul
Da häng ein LED Controller dran Wenn ich den LED-Controller mit PORTE |= (1 << 4) ansteuer und messe habe ich 5V Wenn ich mit nem arudino sketch analogWrite(254) mache, hab ich auch 5V. Nur bei meinem PWM sind es nur 1,1V.
Gast
#3007970
Hi >Wenn ich mit nem arudino sketch analogWrite(254) mache, hab ich auch 5V. >Nur bei meinem PWM sind es nur 1,1V. Du hast eine 10-BitPWM eingestellt. Klar, das bei einem OCR-Wert von 254 keine 5V herauskommen. MfG Spess
@Spedd53: Danke das habe ich übersehen :S Jetzt läufts !!!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.