PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OSzilloskop programmiert Atmega16 um??



µautonom
05.08.2008, 14:57
Ich versuche zur Zeit mich in PWM einzuarbeiten, das Programm funktioniert so weit , das Problem ist ein anderes.



#include <avr/io.h>
#include <util/delay.h>

//Atmega 16 | Interner Takt=1MHz


// [PD5]--+--[LED]--+--[Widerstand]--+--[Masse] angeschlossen

int main(void)
{

PORTD = 0xff; //Pull-Ups aktivieren
DDRD = (1<<PD5); //Pin5 Ausgang

//Takt=1Mhz ; Prescaler=1024 => 976,56 Hz


TCCR1A = (1<<WGM10) | (1<<COM1A1); //8Bit PWM | Nicht invertierende PWM
TCCR1B = (1<<CS12) | (1<<CS10); //Prescaler Ck/1024 = 976,56Hz

OCR1A = 0; //Vergleichswert = 0

uint8_t i;

for(i=1;i++;i<=255)
{
OCR1A++; //Vergleichswert um 1 erhöhen
_delay_ms(100); //100ms warten
}


while(1);


}


Wenn ich mir das Ausgangssignal am Oszilloskop anschauen will ändert sich das Signal nach ein paar Sekunden und ich habe kein typisches PWM-Ausgangssignal mehr, sondern nur ein ,ich sag mal "gleichgerichtetes Signal" 8-[.

Oszi Tektronix 2225:
Angeschlossen hab ganz normal die Masse vom CH1(Kanal 1) an die Masse vom AVR und die Tastspitze an den PD5.
Einstellungen: CH1 ,DC , ich kann auch ein Video reinstellen, falls das besser ist.

Es liegt also ständig nur eine Spannung an, kein wechselndes Signal von z.B. 5Volt - 0Volt.

Wenn ich danach nochmal die Led mit Vorwiderstand an PD5 anschließe blinkt sie nicht mehr, leuchtet nur die ganze Zeit, als ob das Oszilloskop das Programm verändert hat.

Ich weiß auch nicht was ich falsch mache, vielleicht ist am Oszi defekt aber ich kann mir nicht erklären wie sich das SIgnal ädern kann.

Vielleicht könnt ihr mir weiterhelfen.

Mfg µautonom

Besserwessi
05.08.2008, 17:56
Das Programm ist so geschireben, das das tastverhältnis langesam, über 25s bis auf 100% hochfefahren wird. Nach 25 s wird man also immer eine konstante Spannung haben.

Sonst kann die belastung duch das Oszlloskop eventuelle Störungen verursachen.

µautonom
05.08.2008, 18:25
Hi, muss mir das Programm doch noch einmal genauer anschauen, hab das Programm wahrscheinlich falsch verstanden

Mfg

zerush
05.08.2008, 19:01
Setz einfach mal OCR1A auf einen festen wert (z.b. 128), und mach die for-Schleife raus. Dann hast du die ganze Zeit das gleiche PWM-Signal dran, und du solltest es auch auf dem Oszi sehen...