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!
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)
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
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...
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.
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...
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
> // ... 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.