Arduino in C-Code Übersetzen für AVR-ISPMk2

Gast #2718987
Hi ihr,
ich habe eine Frage.. und zwar ob ich diesen Arduino Code so richtig in
C umgeschrieben habe und wie ich in der untersten Funktion Ton() die
Ausgangspins setzen kann weil PORTB = 0b00000001 also Pin B0 = 1 nimmt
er nich.... vermute mal dass es was mit der Sichtbarkeit zu tun hat also
ob Globale Variable oder Lokale...

Ich muss dazu sagen ich bin totaler Anfänger in diesem Thema und naja
boxe mich mit meinem Java Wissen etwas durch und einigen tutorials...
aber alles kann man sich da halt nicht rauslesen...^^

Hatte zuerst versucht mit einem Arduino einen ATTINY 84 und einen
ATMEGA8 zu flashen aber iwi gab das nur probleme deshalb bin ich jetzt
kurzfristig auf das AVR-ISP-MK2 umgestiegen was ich aber erst am Montag
bekomme. Wollte aber mal vorrab von euch wissen ob man das so machen
kann.


Danke schonmal vielmals!!!



Hier der Arduino Code und weiter unten der Übersetzte C-Code für das
AVR-Studio:
Angehängte Dateien:
Gast
ok am Ende steht da nicht 00000001 sondern 00000000^^


aber mal noch was anderes.... Wieso kann ich nach Neustart des Programms 
kein "debuggen" durchführen?

Ich habe die Datei mit "speichern unter" in einen neuen Ordner 
gespeichert und seither zeigt er mir keinen grünen Balken mehr an links 
und die Debugg Funktion ist grau...

Fehlt ihm jetzt irgend eine Referenz die beim speichern verlohren 
gegangen ist oder so?
Gast
naja habs schnell in den editor gepackt und gespeichert^^

wie kann ich dann unterschiedliche Wartezeiten einstellen? Einfach in 
der Funktion Ton() eine Konstante erzeugen und der den Ankommenden Wert 
zuweisen?
Gast
ok hab selber noch 2 Sachen gefunden... einmal war die Kalibrierung() 
falsch deklariert und die BITS am anfang sind jetzt auch richtig 
deklariert..^^

Es kommt aber noch immer der Fehler hier für die Funktion 
"Kalibration();":

Warning  2  implicit declaration of function 'Kalibration' 
[-Wimplicit-function-declaration]...
Basstler schrieb:
> aber mal noch was anderes.... Wieso kann ich nach Neustart des Programms
> kein "debuggen" durchführen?
Weil man ein fehlerhaftes Programm, das nicht compilert, nicht debuggen 
kann.

>unsigned next:1  = 0;
Das gehört in ein struct.
>digitalWrite(Ton,LOW);
Wo ist diese Funktion?

Das würde zwar compilieren, aber:
>nt16_t Kalibrationarray1[256];
>int16_t Kalibrationarray2[256];
>int16_t Kalibrationarray3[256];
macht zusammen 1536 Bytes
Attiny84: 512 Bytes
Atmega8: 1024 Bytes

Basstler schrieb:
> wie kann ich dann unterschiedliche Wartezeiten einstellen? Einfach in
> der Funktion Ton() eine Konstante erzeugen und der den Ankommenden Wert
> zuweisen?
Das ist Problem Nr. 947. Und je nach GCC-Version noch nicht mal ein 
Fehler. Eine Konstante ist eine Konstante. Fang erstmal bei 1 an.
Dein Compiler überschüttet dich schliesslich mit Fehlermeldungen.

mfg.
Gast
Weil ich mit dem AVR-Studio arbeite und das die Syntax vom Arduino ja 
nich kennt^^
Und ich wollte ATTINY84 und ATMEEGA8 flashen und das hatte mit dem 
Arduino Board nicht klappen wollen bzw nicht gut... Hätte dann mit den 
Fuses rumm experimentieren müssen und ich dachte wenn ich es in C 
umschreibe und mit dem AVR-ISP-MK2 flashe bin ich besser unterwegs. 
Zumal Grundkenntnisse in C nie verkehrt sind!

Oder kennt ihr einen besseren Weg? Denke ich habs ja schon fast... Hoffe 
nur dass es so funktioniert wie ichs bisher programmiert habe...^^
Gast
aktueller Code muss für heute leider Schluss machen...

Ja das mit den Arrays ist wohl ein Problem das ich lösen muss oO... 
nicht gut wenn der Ram vollläuft und dann nichts mehr geht :D

Denke dann nehme ich einfach nach 256 Kapazitiven Lade und Entlade 
Vorgängen den letzten Wert als Kalibrationswert das spart die Arrays.
Angehängte Dateien:
Gast
Ich bekomme da immer diesen Fehler:
Warning  5  conflicting types for 'Kalibration' [enabled by default]

und

Warning  3  implicit declaration of function 'Kapazitaet' 
[-Wimplicit-function-declaration]



checke aber nicht wieso oO...
Gast
das macht er für alle Funktionen.... Ich muss also bei der deklaration 
der Funktionen irgendwas falsch machen....

bzw bei der implementierung...


Wie macht man das eigentlich in C-Code?
Gast
Das sind Warnungen, das passt schon, sind keine Fehler.
Wenn du ein:
void Kalibration();

nach den Includes stellst, verschwindet die Warnung, nennt sich
vorward declaration, oder du deklarierst die Unterprogramme vor deren
Verwendung.
Gast
ok also beim Aufruf dann einfach noch einmal "void" davor packen?

Ja wie würde das dann aussehen oO Bzw wie kann ich eine Funktion 
deklarieren ohne sie vorher zu definieren...^^??


danke schonmal Chris =)

LG und gn8 ;)
Gast
jetzt hab ich das nächste problem...

Code passt einigermaßen aber jetzt kann ich nicht flashen :D :D


muss ich die beidne iwi speziell verschalten?

dreh noch durch -.- zuerst nich mit arduino jetzt mit avr isp nich... =( 
=(...

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.