Atmega8 Frequenz ausgeben ( Umsteiger Arduino auf AVR )

Gast #4222477
Lesenswert?

Hallo Leute,
habe in der Vergangenheit einiges mir Arduino programmiert und will auf 
das AVR-Studio umsteigen… Nun habe ich ein „myAVR board v2.06“ (Atmega8) 
aufgetrieben.
Aufgabe ist eigentlich ganz einfach: Eine über einen Poti einstellbare 
Frequenz soll ausgegeben werde.
In Arduino sah das folgendermaßen aus:
1
int eingang= A0;
2
int LED = 6;
3
int halbf= 1;
4

5
void setup()
6
{
7
pinMode (LED, OUTPUT);
8
}
9

10
void loop()
11
{
12
steuerwinkel =analogRead(eingang);
13
digitalWrite (LED, HIGH);
14
delay (halbf);
15
digitalWrite (LED, LOW);
16
delay (halbf);
17
}
Habe schon so viel probiert und gesucht. Komme leider nicht weiter! Hier 
mein aktueller Versuch im AVR:
1
#define F_CPU 1000000    
2
#include <avr/io.h>
3
#include <util/delay.h>
4
#include <avr/interrupt.h>
5
#include <stdint.h>        
6

7
int main(void)
8
{
9
  int halbf=PC0;
10
  DDRB=0b00000001;
11
  DDRC=0b00000000;    
12
  
13
  while(1)
14
  {
15
    PORTB=0b00000001;
16
    _delay_ms(halbf);
17
    PORTB=00000000;
18
    _delay_ms(halbf);
19
  }
20
}
Leider verändert sich nichts ich bleibe bei über 900KHz.
Wäre TOP wenn mir jemand den Code schickt dann kann ich es 
nachvollziehen…
Vielen Dank im Voraus.
#4222490
Lesenswert?

Martin schrieb:

> Leider verändert sich nichts ich bleibe bei über 900KHz.

wie auch.
1
  int halbf=PC0;

ist nun mal kein Ersatz für das Auslesen das ADC.


> Wäre TOP wenn mir jemand den Code schickt dann kann ich es
> nachvollziehen…

Es wäre TOP, wenn du das AVR-GCC-Tutorial studieren würdest.

Dort finden sich dann auch ADC ROutinen die funktionieren.
Und auch die Erkentnis, dass du _delay_ms nicht mit Variablen benutzen 
kannst, weil die Zeiten nicht stimmen werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren