Hallo zusammen, ich habe den beigefügten Code verwendet um von meinem atmega328p auf mein microsd Karten Modul eine Text Datei zu erstellen. Leider muss ich feststellen, dass ich zwar keine Fehler, aber auch keine Datei erstellt rausbekomme. Bei dem uart_putc Befehl bekomm ich ETX heraus. Die Sd Karte ist auch korrekt formatiert und die Verkabelung stimmt soweit auch. ich habe es mit der Arduino SD.h Library ausprobiert. Weiß einer wo der Fehler ist?
Wenn schon der Sourcecode vorliegt, könnte man da nicht debuggen? Oder zumindest an relevanten Stellen ein printf() einbauen?
Clara E. schrieb: > ich habe es mit der Arduino SD.h Library ausprobiert. Ich kann in deiner gelieferten *.zip keine Arduino SD.h Library finden. Macht in diesem Zusammenhang auch keinen Sinn. Clara E. schrieb: > Weiß einer wo der Fehler ist? Wenn ich deine Sammlung an Sourcen in einem AVR Studio Projekt anlege und versuche zu compilieren kommt ein Fehler: ...... ff.c:1100: undefined reference to `disk_ioctl' Der muss weg. ... sowie eine Warnung die man ernst nehmen sollte: ../mmc_avr_spi.c:86: warning: 'power_on' defined but not used Ich vermute mal dass du die Funktion auch benutzen müsstest um die SD-Karte einzuschalten? Versuche dein Projekt zu "cleanen" (alte Objects entfernen) und neu zu compilieren. Damit nicht alte "Leichen" deinen Build stören. Berücksichtige alle Warnings und eliminiere sie. Das F_CPU gehört in die Projekt-Datei, nicht in eine einzelne Source-Datei.
Clara E. schrieb: > Die Sd Karte ist auch korrekt formatiert Was heißt Korrekt. Ich habe festgestellt das viele Libs nur FAT-16 mögen. Schau mal in der Beschreibung der Lib's nach, für welchen Typ die geeignet ist. Ach und nimm eine Altmodische SD-Karte, nix HD / HC o.s.w. Ich habe für so Zwecke extra noch eine 32 MB-Karte übrig. ;)
PittyJ schrieb: > könnte man da nicht debuggen? Nein! Auf einem 328p kann man nicht debuggen. Er hat weder JTAG noch ein anderes Debug-fähiges Interface.
uff basse schrieb: > Auf einem 328p kann man nicht debuggen. Er hat weder JTAG noch > ein anderes Debug-fähiges Interface. Zur Not würde ich da dann einfach ein 160* -Display via i2c anschließen. Und die Werte da anzeigen lassen. Was nebenbei der Grund ist, wieso alle meiner Projekte so ein "ehemals" billiges Display haben.
Nachtrag: https://funduino.de/nr-28-das-sd-karten-modul Aber VORSICHT. Deren Modul will 5 Volt. Die meisten die ich kenne (eigentlich alle) wollen 3.3 Volt. Wo auch bei dir ein Problem sein KÖNNTE. Prüfe nach was wieviel Volt das Modul will.
uff basse schrieb: > PittyJ schrieb: >> könnte man da nicht debuggen? > > Nein! > > Auf einem 328p kann man nicht debuggen. Er hat weder JTAG noch > ein anderes Debug-fähiges Interface. Und einen Uart gibt es auch nicht? Ich habe beim meinem aktuellen Controller auch kein Jtag. Aber das erste, was ich in Gang bringe, ist der Uart. Da kann man dann wenigstens ein paar Ausgaben drauf ausgeben. Sonst hat man doch totalen Blindflug. Irgendeine Ausgabe muss doch da sein.
Schlaumaier schrieb: > Zur Not würde ich da dann einfach ein 160* -Display via i2c anschließen. Wenn es der/die TO nicht schafft eine fertige Sammlung von Sourcen zum Laufen zu bringen wird er/sie mit einen zusätzlichen Display auch scheitern. Anschließen würde ja noch gehen, aber zum Funktionieren bringen? I2C wäre sowieso eine "Erschwernis-Zulage".
PittyJ schrieb: > Und einen Uart gibt es auch nicht? Ein UART ist kein Debug-Interface. Aber die Source zum UART ist ja schon im Projekt vorhanden. Man müsste sie halt auch nutzen. Aber das ist kein Interface im Sinne von Debuggen. Und dieses Nutzen ist eine weitere Herausforderung für Anfänger (den/die TO darf man wohl so nennen).
uff basse schrieb: > Anschließen würde ja noch gehen, aber zum Funktionieren bringen? > I2C wäre sowieso eine "Erschwernis-Zulage". Mag sein. Aber ich bin der Meinung das ich Rückmeldungen haben will. Selbst im Betrieb des Objektes. Woher soll der User (ich) den wissen, was das Teil gerade macht. ?!?! Also entweder ein Display(chen) oder viele LED's. Da ich die LED's auch über den i2c anklemmen würde, um Pins zu sparen, wird das TO sich wohl oder übel damit abfinden müssen. Ich als Anfänger habe (und würde wenn nicht) eh mit einen NANO/UNO anfangen wo ich die Kontrolle via PC / USB habe. Wieso müssen die Leute immer mit Sachen anfangen, die für Anfänger absolut nicht geeignet sind. Davon abgesehen. Ich habe es schon oft erlebt, das ein libs von Github's nicht das macht was ich will oder spinnt. NA UND, dann suche ich mir eben eine neue, oder suche mir im Netz eine Anleitung wie ich den Bauabschnitt regeln kann. Mir ich mein Wissen auch noch nie im Schlaf zugeflogen. Dazu gehört RECHERCHE im Netz. Oder damals ein Kurs bei einen Freund bzw. VHS (nicht das Videosystem gemeint fG) .
Schlaumaier schrieb: > Aber ich bin der Meinung das ich Rückmeldungen haben will. Das bekommt man mit UART eigentlich gut hin und das ist auch nicht schwer. Die Ausgabe kann man sich dann ja mit einem Terminalprogramm anschauen.
Zeno schrieb: > Das bekommt man mit UART eigentlich gut hin und das ist auch nicht > schwer. Die Ausgabe kann man sich dann ja mit einem Terminalprogramm > anschauen. JA während der Entwicklung. Da nutze ich auch den Monitor der IDE, wenn er zur Verfügung steht. Aber in den Fall meinte ich so Rückmeldung wie. "Daten werden erfasst" , "234 erfasste Daten geschrieben", "SD-Karte im Zugriff" und nicht zu vergessen "System gestoppt". Letzere sollte per Taste ausgelöst werden. Sonst kann es nämlich schnell vorkommen, das es zu ein Schreibfehler auf die SD-Karte kommt. Und gerade SD-Karten mit alter FAT sind da aus Erfahrung sehr zickig. Und wenn die gerade am schreiben ist. ..... -. Einfach nur weil : "Mach dir selbst keine Probleme, du bekommst es genug". Und da ich meist ein paar Tasten dran habe, gibt es auch fast immer ein "Menü(chen). Und DAS bekomme ich (ohne Zeitspielchen) mit 4 Tasten hin. Und das ganze AUTAK. !!!
Schlaumaier schrieb: > Ich habe es schon oft erlebt, das ein libs von > Github's nicht das macht was ich will oder spinnt. NA UND, dann suche > ich mir eben eine neue, oder suche mir im Netz eine Anleitung wie ich > den Bauabschnitt regeln kann. Mir ich mein Wissen auch noch nie im > Schlaf zugeflogen. Dazu gehört RECHERCHE im Netz. OK, das scheint mir die generelle Denke der jungen Internet-Generation zu sein. Was wäre hingegen dagegen einzuwenden, mal das Manual zum Chip zu lesen und so langsam zu beginnen, zunächst die Prinzipien zu begreifen, bevor man sich daran macht, ein Projekt durchzuziehen? Ist zu mühsam, gelle? Immer nach dem Motto "ich will alles, und zwar sofort (und ohne mich dabei anstrengen zu müssen)". PittyJ schrieb: > Und einen Uart gibt es auch nicht? Naja, eine serielle Verbindung ist schon nützlich und bei so einem kleinen Chip wohl auch angesagt, allerdings habe ich bei vielen meiner Projekte für den allerersten Teil die Ausgabe eines Codes auf einem Pin des Controllers vorgesehen. Sowas kann man nur mit dem Oszi sehen, aber es ist das einzige, was man verwenden kann, solange es noch keinen richtig aufgesetzten Systemtakt gibt. Ohne diesen ist auch der UART noch keine funktionable Lösung. Bei dieser Gelegenheit frage ich mich auch, wieso erstmal fast alle auf sowas wie printf kommen. Das ist mMn die allerdümmste Version zum Debuggen am Anfang, denn mit dem printf holt man sich ein recht fettes Paket diverser Funktionen auf den Chip, wobei oft genug der Speicherplatz droht, zur Neige zu gehen und gerade Anfänger haben dazu noch ihre Probleme, die "Rückseite" von printf an ihren Chip sinnvoll anzupassen. Die vielen Beiträge hier im Forum zum Problem der Benutzung eines UARTS sprechen da für sich. W.S.
Schlaumaier schrieb: > Schau mal in der Beschreibung der Lib's nach Schlaumaier schrieb: > Also entweder ein Display(chen) oder viele LED's. Da ich die LED's auch > über den i2c anklemmen würde Schlaumaier darf sich mal noch schlauer machen indem er sich über über Deppenapostrophen informiert: http://www.deppenapostroph.info
W.S. schrieb: > OK, das scheint mir die generelle Denke der jungen Internet-Generation > zu sein. Was wäre hingegen dagegen einzuwenden, mal das Manual zum Chip > zu lesen und so langsam zu beginnen, zunächst die Prinzipien zu > begreifen, bevor man sich daran macht, ein Projekt durchzuziehen? Ist zu > mühsam, gelle? Immer nach dem Motto "ich will alles, und zwar sofort > (und ohne mich dabei anstrengen zu müssen)". Typische Denkweise moderner Ing. . Immer das Rad neu erfinden, aber nix brauchbares machen. Ich nutze was da ist. Wenn der seltene Fall eintritt, das eine Libs mir super gefällt, aber eine Funktion/Eigenschaft der Lib einen Fehler ausweist dann verbessere ich den Fehler FÜR MICH. Aber ich sehe nicht ein das ich in einer Welt wo JEDES IT-Teil seine Treiber braucht, ein eigenes OS schreiben muss, und den Befehlssatz des Prozessors lernen muss. Darauf läuft es deiner Aussage nach hinaus. Ich habe damals mal Spaßes halber mich mit den Befehlssatz des 6502 Prozessor beschäftigt. Hat mir aber nicht wirklich Spaß gemacht, ergo habe ich fast alles wieder vergessen. Ich oute mich mal. Ich kenne weder den Befehlssatz eines Arduino-CPU noch den meiner Beere, oder den meiner AMD-Cpu im PC. Ich installiere die richtigen Treiber, die i.d.R. sauber laufen und das war es. Es kommt schon mal vor, das ich daran herum bastele (besonders weil ich b4x nutze, da ist das "üblich".) aber mehr auch nicht. Hauptsache ist ich erreiche was ich will. Ohne viel Stress. Mehr will ich nicht.
W.S. schrieb: > Bei dieser Gelegenheit frage ich mich auch, wieso erstmal fast alle auf > sowas wie printf kommen. Das ist mMn die allerdümmste Version zum > Debuggen am Anfang, denn mit dem printf holt man sich ein recht fettes > Paket diverser Funktionen auf den Chip, wobei oft genug der > Speicherplatz droht, zur Neige zu gehen und gerade Anfänger haben dazu > noch ihre Probleme, die "Rückseite" von printf an ihren Chip sinnvoll > anzupassen. Die vielen Beiträge hier im Forum zum Problem der Benutzung > eines UARTS sprechen da für sich. > Ich arbeite viel mit Arms. Der aktuelle STM32H7 hat 1M Flash und 1M Ram. Da stört auch ein snprintf() nicht. Selbst wenn es 10K braucht. Ansonsten kann man auch ein UART_Puts(), oder wie das auf Atmels heissen mag, benutzen. Nur sollte man eine Möglichkeit schaffen, irgendwas zu sehen. Und in vielen Kreisen wird das eben printf()-Debugging genannt.
Schlaumaier schrieb: > Hauptsache ist ich erreiche was ich will. Ohne viel Stress. Mehr will > ich nicht. Deswegen wirst Du auch nie ein Ingenieur werden und immer ein Bastler bleiben.
Andreas B. schrieb: > Deswegen wirst Du auch nie ein Ingenieur werden und immer ein Bastler > bleiben. Danke für das Kompliment. Meine ich ernst. Du weißt aber schon das die größten Erfindungen der Menschheit von Bastlern und Tüftlern gemacht worden sind. ;) Ein Ing. macht aus jeden Furzt eine genormte Wissenschaft die keiner rafft. Und es waren Ing. die Begriffe wie "Obsolet" erfunden haben, und helfen den Plani zu zerstören. Die ReFa-Fachleute haben das nur in Zahlen gefasst.
Schlaumaier schrieb: > Du weißt aber schon das die größten Erfindungen der Menschheit von > Bastlern und Tüftlern gemacht worden sind. ;) Ah. Beispiele? Und zwar welche aus den letzten beiden Jahrhunderten. Schlaumaier schrieb: > Ein Ing. macht aus jeden Furzt eine genormte Wissenschaft die keiner > rafft. Die DU nicht raffst. Und nein, Wissenschaft hat nicht den Anspruch für jedermann verständlich zu sein. Was glaubst Du, wozu ein Studium gut ist? Wenn die Welt nur aus Bastlern und Tüftlern bestehen würde, könntest Du hier Deinen Mist bestimmt nicht verzapfen.
Andreas B. schrieb: > Ah. Beispiele? Und zwar welche aus den letzten beiden Jahrhunderten. https://de.wikipedia.org/wiki/Nicolaus_Otto Zitat:" Der Autodidakt absolvierte nie ein Hochschulstudium und erhielt später die Würde eines Ehrendoktors. " Und Sogar Edison. Der wird zwar Ing. genannt (damit die anderen ihren Titel auf hübschen) hat aber selbst nie Studiert. Und das mache ich dir ne Menge weiter.
Ich sprach von den letzten beiden Jahrhunderten. Also das 20. und 21. Und nicht von irgendwelchen Erfindungen sondern von (Zitat) "den groessten Erfindungen der Menschheit" Was Edinson betrifft: Es gibt immer wieder Ausnahmen. Zu denen Du aber gewiss nicht gehoerst. Und die Zeiten wo man ohne Studium irgend etwas nennenswertes erfindet (das nicht schon vorher bekannt war), sind lange vorbei. Selbst mit Studium entstehen nennenswerte Entwicklungen nur noch in grossen Teams.
Schlaumaier und bitverdreher: geht mit euerem Laber-Kram woanders hin. Ihr tragt nichts mehr zum Thema des Thread bei.
Da gibt es wenig dazu beizutragen, weil die Frage des TO von voelliger Ahnungslosigkeit zeugt. Irgendwas aus dem Internet zusammenzukopieren reicht eben nicht. Die lib von Elmchan funktioniert uebrigens wunderbar. Aber mit den Fragmenten die da oben geliefert wurden, ist jede Diskussion ziemlich nutzlos.
Andreas B. schrieb: > Da gibt es wenig dazu beizutragen, weil die Frage des TO von voelliger > Ahnungslosigkeit zeugt. Stimmt. Nach meinen Erfahrungen reicht i.d.R. die Lib einbinden und ca. 5-15 Zeilen Code damit es so läuft wie man will. Ist doch der Grund warum ich Libs mag. Sie unterstützten meine natürliche Faulheit.
Ich hab mal das AVR-Beispielproject von der Homepage etwas abgespeckt und auf dem ATmega328p zum Laufen gebracht. Es ist, wie könnte es anders sein, ein Arduino Uno, allerding ohne Arduino IDE, old school mit AVR Studio 4.18 ;-) Zur Anzeige des Programmverlaufs und möglicher Fehler wird der UART benutzt. Es wird eine Datei namens hello.txt geöffnet und auf den UART ausgegeben. Danach wird eine Datei namens write.txt angelegt und mit einem String geschrieben. Die sollte dann auf dem PC sicht- und lesbar sein. Viel Spaß Und daran denken, daß man einen gescheiten SD-Card Adapter mit gescheiten Pegelwandlern braucht, wenn das gut laufen soll.
:
Bearbeitet durch User
Schlaumaier schrieb: > Wieso müssen die Leute immer mit Sachen anfangen, die für Anfänger > absolut nicht geeignet sind. Weil erfahrene Leute häufig sogenannte Anleitungen präsentieren, die zeigen wollen wie genial einfach alles sei.
Schlaumaier schrieb: > Du weißt aber schon das die größten Erfindungen der Menschheit von > Bastlern und Tüftlern gemacht worden sind. Mag sein, aber die Erfinder haben sie selten zur Serien-Reife gebracht.
Falk B. schrieb: > Und daran denken, daß man einen gescheiten SD-Card Adapter mit > gescheiten Pegelwandlern braucht, wenn das gut laufen soll. Sinnigerweise sollte man gleich alles mit 3,3V laufen lassen. Aber das ist für den typischen Arduinisten wieder ein schwerwiegendes Problem.
Andreas B. schrieb: > Falk B. schrieb: >> Und daran denken, daß man einen gescheiten SD-Card Adapter mit >> gescheiten Pegelwandlern braucht, wenn das gut laufen soll. > Sinnigerweise sollte man gleich alles mit 3,3V laufen lassen. Aber das > ist für den typischen Arduinisten wieder ein schwerwiegendes Problem. Noch so ein Mensch mit Pegelwandlerphobie! ;-)
Andreas B. schrieb: > Sinnigerweise sollte man gleich alles mit 3,3V laufen lassen. Aber das > ist für den typischen Arduinisten wieder ein schwerwiegendes Problem. Hm. Das hat aber auch seine Nachteile. Für so ein SD-Teil nehme ich einfach die 3.3 Volt vom fertigen Board. Der Vorteil ist, das ich das Board i.d.R. mit einen USB-Kabel versorgen kann. Und die Steckernetzteile gibt es für 2-3 Euro wie Sand am Meer. Das Problem ist halt, das man sich nicht auf 3.3 ODER 5 Volt einigen kann. Also lieber mehr rein und Step-down als weniger rein und Step-up. Ist aber nur meine Meinung. ps.: Ich habe mir neulich einen Adapter-Platine für einen Nano bestellt. https://www.christians-shop.de/Nano-V30-Prototype-Shield-mehr-Inputs-und-Outputs-am-Arduino-Nano Nano-Board drauf. Sauber an die Seite des Gehäuses montiert. Hohlstecker rein aus 7 Volt oder mehr Steckernetzteil rein, fertig ist. Damit muss ich i.d.R. nicht einmal mehr richtig löten. Außer ein Kabel ein einen Steckschuh. Kosten 2 Euro. Für das Geld bekomme ich nicht einmal in China eine fertige Platine. Vom Stress mal ganz abgesehen. Man muss sich das Leben nicht schwerere machen als es ist. Geht natürlich nur wenn man genug Platz hat im Gehäuse. Und bei 16 Tasten und ein 4x20 Display habe ich (akt. Projekt) Was man aber muss ist, zu verstehen wie man das richtig verdrahtet, und in der Software oft via Lib ansteuert. Es wird schon ein Grund haben, wieso alle dauernd, MIT RECHT, hier schreiben das man die Datenblätter lesen soll. !!!
Viele 5V Netzteile geben bei sehr geringer Last deutlich mehr Spannung aus. Andererseits fällt oft signifikant Spannung an den Leitungen und Steckern abfällt. Außerdem sollte man bedenken, dass einige Arduino Boards (z.B. Nano) die Spannung mit einer Diode verringern. Mal ist das eine Shottky Diode, mal eine normale Silizium Dode. Die 5V sind im Arduino Umfeld nur "irgendwas um 5 V", konkret eher 4 bis 6 Volt. Diese Spanne ist mir zu breit, daher plädiere ich für einen 3,3V Regler. Außer man hat einen bestimmten guten Grund, ihn weg zu lassen.
Könnt ihr das Geleier über Pegelwandler und Netzteile mal woanders abladen?! DANKE!
Stefan ⛄ F. schrieb: > Die 5V sind im Arduino Umfeld nur "irgendwas um 5 V", konkret eher 4 bis > 6 Volt. Du magst durchaus recht haben. Aber ich nehme nur Handy-Ladenetzteile. Die liefern i.d.R. 2.1 A. Und ich benutze den USB-Anschluss der Boards. Wenn ich Externe Teile mit eigenen Strom versorgen muss, lass ich den Arduino Stromwandler seinen Job machen. Aber ich gebe zu. 3.3 Volt mit mehre mA als das Board am 3.3 V Anschluss liefert habe ich nie gebraucht. Das wäre dann die nächste Hürde die ich nehmen müsste. Aber kommt Problem - kommt Lösung ;) Ich habe aber mal 2 meine China-SD-Karten-Module (3.3 Volt) nach einen Freund geschickt, der bedeutend mehr von Elektronik versteht als ich. Und der sagte mir, das er auf den Teilen irgendwas herum gelötet hat, und sie seit dem perfekt laufen. Vorher haben die bei ihm Zicken gemacht. Ich selbst habe vor 2 Jahren halt mal 10 Stück = 1 Pack für 7 Euro aus China bestellt. Der Preis war o.k. und ich hatte was zum Spielen. Leider bisher noch nicht selbst getestet. War alles zu einer Zeit als ein das Zeug hinterher geworfen wurde. Meine Nanos lagen unter 2 Euro a. Inzwischen bei > 10 Euro + Mwst.
Falk B. schrieb: > Noch so ein Mensch mit Pegelwandlerphobie! ;-) Nö, aber warum irgend etwas komplizierter machen wo es nicht notwendig ist. Zusätzliche Bauteile & verringerte Zuverlässigkeit & zusätzliche Kosten & größerer Bauraum. Hab ich was vergessen? Falk B. schrieb: > Könnt ihr das Geleier über Pegelwandler und Netzteile mal woanders > abladen?! DANKE! Öhm, wer hat denn damit angefangen?
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.