Also das PWM macht mich fertig
. Der code geht so weit, deswegen auch schon mal DANKE!!!
Wenn ich aber folgenden Code laufen lasse:
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/delay.h>
#include <stdint.h>
#include <avr/delay.h>
#include <avr/signal.h>
static void io_init(void)
{
PORTA =0x0; //ausgängn
DDRA = 0xff;
// PortB
PORTB = 0x0; //ausgänge
DDRB = 0xff;
// PortC
PORTC = 0x0; //ausgänge
DDRC = 0xff;
// PortD
PORTD = 0x0; //ausgänge
DDRD = 0xff;
ACSR = 0x80;
}
void aktPWM(){
OCR0=20;
OCR1A=20;
OCR1B=20;
DDRB=0xff;
DDRD=0xff;
TCCR0=(1<<WGM00)|(1<<COM01)|(1<<CS01);
TCCR1A = (1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B = (1<<CS10);
}
int main(void)
{
io_init();
aktPWM();
int counter = 0;
int counter1 = 50;
int counter2 = 68;
char up = 1;
while(1)
{
if(counter == 10){
up = 1;
}
if(counter == 100){
up = 0;
}
if(up == 1){
counter++;
}
else{
counter--;
}
OCR0 = counter;
_delay_ms(16);
_delay_ms(16);
_delay_ms(16);
_delay_ms(16);
_delay_ms(16);
_delay_ms(16);
}
return(0);
}
Dann läuft das manchmal, manchmal aber nicht!?! Was kann das sein? Ich schalte mein Netzteil ein, dann wird die eine LED heller, dunkler, und immer so weiter. Die anderen beiden bleiben gleich hell.
Und auf einmal bleibt die heller/dunkler werdende einfach stehen, oder flackert, und die anderen gehen aus, oder es gehen alle aus.
Also ganz komisch.
Wenn ich meinen atmega auf 1Mhz laufen lasse, also der auslieferung-einstellung, was die FUSE_Bits angeht, dann funzt es. Wenn ich den dann aber wieder auf 16Mhz mit externem Quarz laufen lasse, dann geht es nicht mehr!
Jm. eine Idee, was das sein kann???
DANKE!
Ach ja, FUSE-Bits hab ich folgendes eingestellt:
Siehe Screenshot im Anhang.
Lesezeichen