Forum: Mikrocontroller und Digitale Elektronik Attiny 13 PWM


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Max (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe bisher immer Arduinos & Co programmiert und möchte jetzt auch 
z.B. Attinys programmieren. Ich habe mir deswegen einen ISP Programmer 
zugelegt 
(https://www.amazon.de/Programmer-USB-AVRISP-XPII-Compatible/dp/B00KM6ZA9I/ref=sr_1_6?ie=UTF8&qid=1508517749&sr=8-6&keywords=isp+programmer).

Programmiert wird mit AVR Studio 5.


Als kleines Einstiegsprojekt wollte ich eine LED flackern lassen (wie 
bei eine LED Teelicht), als Skript wollte ich:

#define LED PB1

// ... adc_setup, adc_read, pwm_setup, pwm_write ...

int main (void)
{
    int adc_in;
    // LED is an output.
    DDRB |= (1 << LED);
    adc_setup();
    pwm_setup();
    while (1) {
        // Get the ADC value
        adc_in = adc_read();
        // Now write it to the PWM counter
        pwm_write(adc_in);
    }
}

von: https://www.adnbr.co.uk/articles/adc-and-pwm-basics verwenden.


Eine Fehlermeldung konnte ich fixen (einfügen von #include <avr/io.h>), 
leider kommen jetzt noch:

- undefined reference to 'acd_setup'
- undefined reference to 'pwm_setup'
- undefined reference to 'adc_read'
- undefined reference to 'pwm_write'

Ich wäre sehr froh wenn ihr mir mitteilen könntet woran das liegt ;-).

Und bitte habt Verständnis dafür dass ich mich in diesem Bereich (AVR 
Studio,...) noch nicht gut auskenne!

von Patrick J. (ho-bit-hun-ter)


Bewertung
0 lesenswert
nicht lesenswert
Hi

Die Funktionen, Die Du aufrufst, sind unbekannt.

Der Compiler weiß Nichts mit 'adc_read()' anzufangen.

Diese Funktionen sind aber in dem von Dir angegebenem Link enthalten.
Einfach diese Funktionen mit in Dein Programm einfügen und einen neuen 
Versuch starten.

Ggf. kannst Du den ATtiny13 auch per Arduino programmieren - zumindest 
25,45,85,24,44,84 lassen sich so, mit Einschränkungen, programmieren 
(selbst bisher nur ATtiny45 probiert).

MfG

PS: Mit nur einem k 'Speicher' wird das Programmieren per Arduino-IDE 
wohl nicht sonderlich gut klappen - Aber: Versuch macht kluch (klug)

: Bearbeitet durch User
von Max (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Patrick J. schrieb:
> Hi
>
> Die Funktionen, Die Du aufrufst, sind unbekannt.
>
> Der Compiler weiß Nichts mit 'adc_read()' anzufangen.
>
> Diese Funktionen sind aber in dem von Dir angegebenem Link enthalten.
> Einfach diese Funktionen mit in Dein Programm einfügen und einen neuen
> Versuch starten.

Wie soll ich sie einfügen? Auch mit # include?


> Ggf. kannst Du den ATtiny13 auch per Arduino programmieren - zumindest
> 25,45,85,24,44,84 lassen sich so, mit Einschränkungen, programmieren
> (selbst bisher nur ATtiny45 probiert).

Ich will sie ja gar nicht per Arduino programmieren ^^, ich will mich in 
das AVR Studio einarbeiten und benötige dazu ein bisschen "Starthilfe".

LG

von c-hater (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Max schrieb:

> Programmiert wird mit AVR Studio 5.

Warum, um alles in der Welt, denn ausgerechnet dies?

Das ist Scheisse. Der erste Versuch von Atmel, eine VS-basierte 
Entwicklungsumgebung bereitzustellen. Dementsprechend behaftet mit 
vielfältigen Bugs, deren bloße Aufzählung allein schon den Rahmen eines 
üblichen Postings überschreitet.

Also: entweder AVR Studio 4.19 (bzw. für C auch 4.18Upd2) oder einfach 
das aktuelle AtmelStudio, also 7.x.

> - undefined reference to 'acd_setup'
> - undefined reference to 'pwm_setup'
> - undefined reference to 'adc_read'
> - undefined reference to 'pwm_write'

Das allerdings hat nix mit dem Studio an sich zu tun (egal welcher 
Version), sondern allein mit deiner Inkompetenz, es korrekt zu benutzen. 
Man kann das einfach lernen, man muß diese Zeit halt einfach nur 
aufwenden...

von M. K. (sylaina)


Bewertung
2 lesenswert
nicht lesenswert
Max schrieb:
> Ich will sie ja gar nicht per Arduino programmieren ^^, ich will mich in
> das AVR Studio einarbeiten und benötige dazu ein bisschen "Starthilfe".

Schau dir mal Grundlagen zur C-Programmierung an. Die brauchst du als 
erstes wenn du mit diesem Fehler schon Probleme hast.

von H. S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Max (Gast)


Bewertung
0 lesenswert
nicht lesenswert
c-hater schrieb:

> Warum, um alles in der Welt, denn ausgerechnet dies?

> Das ist Scheisse. Der erste Versuch von Atmel, eine VS-basierte
> Entwicklungsumgebung bereitzustellen. Dementsprechend behaftet mit
> vielfältigen Bugs, deren bloße Aufzählung allein schon den Rahmen eines
> üblichen Postings überschreitet.
>
> Also: entweder AVR Studio 4.19 (bzw. für C auch 4.18Upd2) oder einfach
> das aktuelle AtmelStudio, also 7.x.

Das war die Version die mitgeliefert wurde, und ich wollte mit einer 
Version ANFANGEN wo ich mich nicht erst um Treiberprobleme kümmern muss.


> Das allerdings hat nix mit dem Studio an sich zu tun (egal welcher
> Version), sondern allein mit deiner Inkompetenz, es korrekt zu benutzen.

Ich habe es inzwischen hinbekommen sie zu definieren ^^, war reine 
Dummheit von mir... (# define ...)

Jetzt bekomme ich nur noch die Meldung "expected expression...", falls 
mir jemand da nen Tipp wäre sehr nett, habe gerade keine Idee was für 
Werte er da will...

von Jemand (Gast)


Bewertung
3 lesenswert
nicht lesenswert
Hallo

"Das allerdings hat nix mit dem Studio an sich zu tun (egal welcher
Version), sondern allein mit deiner Inkompetenz, es korrekt zu benutzen.
Man kann das einfach lernen, man muß diese Zeit halt einfach nur
aufwenden..."

Auch wenn in der eigentlichen Aussage vollkommen korrekt, kannst du das 
nicht ein wenig freundlicher und motivierender formulieren ?

"Inkompetenz" hat für die Meisten immer einen anklagenden, manchmal 
sogar ins beleidigende gehenden Unterton.
Das das Wort "Inkompetent" streng genommen nur etwas beschreibt und 
nicht wertet ändert an der Tatsache das es allgemein als abwertend bis 
beleidigend verstanden wird leider nichts.

Unter uns Bastlern, Hobbyprogrammieren  und Elektronikjüngern sollte es 
eigentlich selbstverständlich sein freundlich miteinander um zu gehen.

Im Amateurfunk gibt es dafür den Begriff "Ham-Spirit" eventuell solltest 
du die mal die Definition und Grundregeln dazu durchlesen - außer einige 
Funkspezifischen Details passen diese Definitionen und Grundregeln auch 
ganz hervorragen im gesamten Bastler und Hobbyumfeld herein.

Überhaupt:  "...-hater" was ist das für ein Selbstverständnis gegenüber 
sich selbst und anderen?
Die willst doch wohl nicht der "Gesellschaftlichen Elite" zusammen 
geworfen werden welche Stolz darauf ist irgendwas oder irgendwen zu 
hassen - und das in Extremis sogar mit gut sichtbaren Tätowierungen 
kundtun?

Mit freundlichen Grüßen

Jemand

von excurso (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> // ... adc_setup, adc_read, pwm_setup, pwm_write ...

@Max

An dieser Stelle müssen statt diesem Kommentar die Definitionen der 
eigentlichen Funktionen stehen (wie sie in dem von dir verlinkten 
Artikel auch angegeben sind), ansonsten kennt der Compiler die 
Funktionen ja nicht.

von batman (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Was sicher die nächste Frage aufwirft: Was ist ein Compiler? :)

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]
  • [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.