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:
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?
warum nennst du deine Dateien *.txt? Der fehler mit dem delay ist immer noch drin, es müssen konstanten sein keine Variablen.
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?
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.
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...^^
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.
Dann schau mal das an, ist nicht ganz 100% korrekt, aber gut beschrieben und sollte für deine Zwecke reichen. http://smileymicros.com/blog/2010/10/03/42/
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...
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?
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.
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 ;)
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... =( =(...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.