-
-
Atmel Controller Mega 162
Hallo zusammen,
ich bin AVR Neueinsteiger und möchte gerne die Timerfunktion des oben genannten Controllers nutzen, aber ich bekomme nur knattern und pfeifen aus OC0. Ist diese C-Code korrekt?
#include <io.h>
void setNewFrequency(short);
int main(void){
TCCR0 = 0x11;
//while (DDRB != 0x00 || PORTB != 0xFF){
DDRB = 0x01;
PORTB = 0xFE;
//}
while (DDRD != 0xFF){
DDRD = 0xFF;
}
int lngCount=1,lngUSE=1,lngSleep; //war long
// int intInput=0;
short Music[]={255,200,155,100,23,45,64,23,45,67,22,33,66,100,2 00,255,230,210,1,10};
short musicpt=0;
//Music[]={255,200,155,100,23,45,64,23,45,67,22,33,66,100,2 00,255,230,210,1,10};
while (1){
for (lngCount=1;lngCount<255;lngCount+=3){
for (lngSleep=0;lngSleep<17500;lngSleep++){
asm volatile ("NOP");
}
if (musicpt < 20){
musicpt++;
}
else{
musicpt = 0;
}
setNewFrequency(Music[musicpt]);
// intInput=PINB;
if (lngUSE<12
{
lngUSE+=2;
}
else{
lngUSE=0;
}
PORTD = ((lngUSE*2-1) % lngCount);
}
}
return 0;
}
void setNewFrequency(short value){
short newValue=0;
if (value >=1 && value <=255){
//newValue = 256 - value;
newValue = value;
//Laden des Vergleichregisters
OCR0 = newValue;
}
}
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen