mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATtiny25 PWM ADC


Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche gerade eine LED Lampe mittels ATtiny25 zu steuern. Die 
Platine mit Treibern ist soweit fertig, nur das Programm für den tiny 
fehlt mir und das will nicht so wie ich mir das vorstelle (ist auch mein 
erster Versuch mit nem µC).

Als Erstes möchte ich PB2 und PB3 als Ausgänge deklarieren und mittels 
PWM (die LEDs) dimmen.
Später soll mal ein Taster an den PB1 angeschlossen werden, über den ich 
die LED ein- bzw. ausschalten kann. Zum dimmen soll ein Poti an PB4 als 
ADC:

Da ich bisher noch nichts ans laufen bekommen habe, fange ich mal ganz 
oben an:

- Reicht es, wenn ich die Bibliotheken <avr/io.h> ; <avr/interrupt.h> 
und <util/delay.h> lade?

- evtl. habe ich schon mal die Ausgänge gesetzt, aber da lagen nur ~1.3V 
an, wäre das richtig (bei Vcc = 5V)? Inzwischen ist das Programm soweit 
verändert, dass es auch nicht mehr läuft.

- wie setzt man einen einzelnen Ausgang und wie bekomme ich da ein 
PWM-Signal drauf?

- muss das in eine (Leer)schleife, damit es läuft?

Das Datenblatt hab ich zwar, aber geholfen hat´s noch nicht. Das 
AVR-Tutorial habe ich auch schon gemacht, aber iwie klappts trotzdem 
nicht.

Das ganze wollte ich in AVR Studio erstellen und über einen USB-ISP 
Programmer auf den tiny bekommen. Die Verbindung dahin hat zumindest 
schon geklappt.

Würde mich sehr über eure Tipps freuen, da ich da schon längere Zeit 
dran sitze.

Viele Grüße

Michael

Autor: Andreas K. (derandi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gesetzte Ausgänge sollten doch schon 5V haben, scheint also noch mehr zu 
fehlen.
Aber wenn du uns nicht zeigen willst was genau du zusammengeschrieben 
hast wird dir niemand wirklich helfen können/wollen.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnelle Antwort.
Hier ein Versuch, nur einen Ausgang (PB1) mit nem Timer auszugeben, aber
das geht auch noch nicht.

***********************************************************
#include <avr/io.h>;
#include <avr/interrupt.h>;
#include <util/delay.h>;


int main(void)

{

DDRB = (1<<PB1); //PB1 als Ausgang

TCCR0A = (1<<COMPB1) | (1<<WGM01) | (1<<WMG00);

TCCR0B = (1<<CS01);

OCR0B = 0x7F;
while (1)
{
//leere Schleife (warum weiß ich auch nicht)
}
return (0);

}

***********************************************************

Ist da schon iwas Grundlegens falsch dran?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael schrieb:
TCCR0A = (1<<COMPB1) | ...

Das Bit heißt COM0B1 und nicht COMPB1

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, stimmt.

bekomme aber trotzdem noch 4 fehlermeldungen. 'COMP01' und 'WMG00' 
undeclared (first use in this function) sind zwei davon. was bedeutet 
das? wie kann ich die denn deklarieren?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael schrieb:
> oh, stimmt.
>
> bekomme aber trotzdem noch 4 fehlermeldungen. 'COMP01' und 'WMG00'
> undeclared (first use in this function) sind zwei davon. was bedeutet
> das?

Das du dich vertippt hast.

Das Ding heißt COM0B1
Ich buchstabiere:  C wie Caesar
                   O wie Otto
                   M wie Martha
                   Zero   wie 0, wei Null
                   B wie Bertha
                   Eins   wie 1, wie Eins

Und es heisst nicht  COMP01 und auch nicht COMPB1


Und das andere heißt WGM00 und nicht WMG00

Geee -  Emmmm   und nicht  Emmm - Geee

Soll ich das auch noch buchstabieren?

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ne lass ma, trotzdem danke!!!!

Autor: ET (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sei()

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ET schrieb:
> sei()

wozu?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.