Forum: Mikrocontroller und Digitale Elektronik Attiny 13 PWM


von Max (Gast)


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)


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)


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)


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)


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)


Lesenswert?


von Max (Gast)


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)


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)


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)


Lesenswert?

Was sicher die nächste Frage aufwirft: Was ist ein Compiler? :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.