so viel ic hweiss kannste nur die vorgegebenen benutzen,
um PD4 und PD5 zu benutzen muste deinen ersten code versuch nehmen
Druckbare Version
so viel ic hweiss kannste nur die vorgegebenen benutzen,
um PD4 und PD5 zu benutzen muste deinen ersten code versuch nehmen
hm, der läuft aber irgendwie nicht :(.
Könntest du mir bitte auch mal den Code posten (sollten ja für die anderen beiden auch nur jm. 2 Zeilen sein ??? ), damit alle drei laufen?
Wäre echt super nett, würdest mir einen großen gefallen tun!
Also der Code funktioniert bei mir super
Code:void aktPWM(){
OCR0=100;
OCR1A=100;
OCR1B=100;
}
void initPWM(void){
DDRB=0xff;
DDRD=0xff;
TCCR0=(1<<WGM00)|(1<<COM01)|(1<<CS01);
TCCR1A = (1<<WGM10)|(1<<COM1A1)|(1<<COM1B1);
TCCR1B = (1<<CS10);
}
Also das PWM macht mich fertig :(. Der code geht so weit, deswegen auch schon mal DANKE!!!
Wenn ich aber folgenden Code laufen lasse:
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.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);
}
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.