hi, ich habe etwas sorgen mit einem kleinen standard projekt. programmiere in c. momenten steuer ich nur ein paar leds an, ist ein kleines projekt. wenn ich jetzt die portinitialisierung oder / und die portklimperei in eine funktion auslagere, diese vor das main kopiere und im main klassich aufrufe dann scheint der controller an der stelle des aufrufes stehen zu bleiben, der code in der funktion scheint auch nicht ausgeführt zu werden. nun ist c nichts neues für mich, aber das avr studio benutze ich erst seit einem jahr. kann es an irgentwelchen einstellungen liegen, hatte soetwas bis jetzt noch nie, klappte immer alles wie man es gewohnt ist. oder kann soetwas durch die optimierungsoptionen am compiler entstehen, ich habe an der ecke aber nichts geändert... tappe im dunktlen. m.
Shifttaste reparieren. Zeile 42 in 43 ändern. Optimierung zum Debuggen ausschalten. Oliver P.S. Leuchten denn die LED's wie gewünscht, oder geht gar nichts?
Das ist bei einem ATMega128 ein beliebter Fehler. Der MC ist werksmäßig im ATMega103 kompatibilitätsmodus. Wenn du im AVR Studio den 128er eingestellt hast sucht das Programm seine Rücksprungadressen an der falschen Stelle und stürzt dann ab. Also wie mein Vorposter schon gesagt hat: M103C Fuse deaktivieren.
entschuldigung, aber diese sorge beim 128iger habe ich schon bitter kennengelernt. ist ein atmega48, wie schon gesagt, alles läuft wie ich es erwarte, nur wenn ich es in eine void funktion auslagere ist schluss. das ist bestimmt einer dieser fehler die man so nie erwarten würde....ich gehe mal davon aus das bei dieser "einfachheit" des programmes der compiler eh ein inline daraus macht, da die funktion ja eh nur 1 mal als init für die spezifische hardware aufgerufen wird, und dort die porteinstellungen vorgenommen werden. m.
Prima. Keine 5 Beitraäge später sagst du uns schon, um welchen Prozessor es eigentlich geht. Ich wiederhole mich mal... >Shifttaste reparieren. >Zeile 42 in 43 ändern. >Optimierung zum Debuggen ausschalten. und jetzt kommt der absolute Geheimtip: Code posten. Mit allem. Kompilierbar. Hier. Als Anhang. (und nicht weitersagen, der Tip ist so geheim, den darf keiner wissen...) Oliver
....ich fall vom glauben ab, das ist immer das gleiche wenn man die umgebung wechselt. ich habe schon einige controller von unterschiedlichen herstellern mit unterschiedlichen entwicklungsumgebungen programmiert... dass ein controller (128iger) ausgeliefert wird in einem zustand in dem er kein 128iger ist, ist schon unlogisch genug, vielleicht gibt es hier einen hardwaregrund, den ich nicht sehe da ich den 103er nicht kenne aber egal...das war vor 4 wochen und hat mich nur eine halbe stunde gekostet da sich der verdacht schnell auftat das hier etwas in der richtugn nicht stimmt... wenn man in der entwicklungsumgebung das falsche device eingestellt hat (unter general), kann so ein funktionsaufruf schon mal in die grüze gehen. oder besser gesagt, wenn man den 48/88 und 168 liegen hat und nicht aufpasst... das ist so peinlich das ich es kaum posten mag, aber ich habe es echt nicht gesehen... und konnt mir wirklich keinen reim daraus machen... @OLIVER die symptome hätten nicht von dem 103er flag beim atmega128 kommen können, wenn dieses flag bei dem prozessor das problem gewesen wäre, dann hätte es so und so nie funktioniert, ob nun als funktionsaufruf oder nicht, wenn es den port nicht gibt gibts den nicht...FINDEST DU ES LIESST SICH MIT CAPSLOCK BESSER? manchmal sieht man den wald vor lauter bäumen nicht, das es soetwas sein muss war mir klar, nur wo man sucht, das ist die kunst... vielen dank nochmal, gruß, m.
maddin schrieb: > die symptome hätten nicht von dem 103er flag beim atmega128 kommen > können, wenn dieses flag bei dem prozessor das problem gewesen wäre, > dann hätte es so und so nie funktioniert, ob nun als funktionsaufruf > oder nicht, wenn es den port nicht gibt gibts den nicht Und woher hätte irgendjemand hier wissen sollen, dass du einen Port benutzt, den es auf dem Mega103 nicht gibt? Klasse, erst völlig unzulängliche Informationen posten, und dann auch noch auf der Basis der fehlenden Informationen rumklugscheißern. > ...FINDEST DU ES > LIESST SICH MIT CAPSLOCK BESSER? Wenn du nicht kapierst, dass es schlichtweg höflich ist, beim Posten darauf zu achten, dass es nicht für dich selbst am bequemsten ist, sondern für den potenziellen Antworter (schließlich soll der ja einen Teil seiner Zeit für dich opfern), dann wirst du bald einfach gar keine Antworten mehr bekommen. Und dazu es den Antwortern möglichst leicht zu machen, gehört nun mal auch eine möglichst korrekte Rechtschreibung (also mit Groß-/Kleinschreibung).
> dann wirst du bald einfach gar keine Antworten mehr bekommen
Das glaube ich kaum, hier gibt es genug Leute, die immer wieder
antworten.
Es denken auch nicht alle gleich. Zum Glück. Darum kann man auch nicht,
wie Du, einfach so für die anderen sprechen.
...die MEISTEN der leute die wirklich ahnung haben posten hier eh nicht,
sie lesen allerhöchstens nur...
eine sehr egoistische haltung, sowie die leute die hier code entnehmen
und verkaufen bsp.: s65 display ansteuerung oder radig sourcen für einen
ethernetserver auf atmel basis...
es gibt hier alles, sich darüber zu streiten, ist wie zwei flöhe auf
einem hund die sich darum streiten wem der hund gehört...oder?
...mir ist schon klar das es in diesem moment schlauer ist garnicht mehr
zu schreiben, aber vielleicht bin ich schon lang in diesem forum... wie
dem auch sei, alle 6-8 monate ergözt sich mal wieder einer über das
thema mit der shift taste, es wäre auch unhöflich gewesen darauf nicht
zu antworten, also die arschkarte hast du eh wenn es jemand darauf
anlegt...
>>
Und woher hätte irgendjemand hier wissen sollen, dass du einen Port
benutzt, den es auf dem Mega103 nicht gibt?
das war doch die vermutung der poster hier, nicht meine angabe, aus
gutem grund...
manchmal ist zuviel info auch nicht hilfreich, da es zu 1000 vermutungen
führt, die 1000 gründe haben, von denen 500 auf schlechtes lesen, 450
auf schlechtes schreiben, 49 auf annahme es läge im code und ein
blödsinniger dazu betragen das ganze unterfangen zu unterlassen...
<<
zumal es auch leute gibt die nicht den ganzen tag hier im forum sind, um
darauf zu warten das einer antwortet und das ruder in dem moment in die
richtige richtung zu lenken...
jeder zweite post hier ist unzulangend beschrieben, das ist halt so,
entweder man hilft oder man lässt es, aber manche leute können diese
entscheidung einfach nicht für sich im stillen treffen...
m.
maddin schrieb: > ...die MEISTEN der leute die wirklich ahnung haben posten hier eh nicht, > sie lesen allerhöchstens nur... > > eine sehr egoistische haltung, sowie die leute die hier code entnehmen > und verkaufen bsp.: s65 display ansteuerung oder radig sourcen für einen > ethernetserver auf atmel basis... Die "MEISTEN der leute, die wirklich Ahnung haben" klauen hier nichts um es zu verkaufen. Sondern sparen es sich einfach auf solche Threads zu antworten, wenn nicht mal grundlegende Informationen drinstehen. Ich hatte ja eigentlich auch nicht vor hier zu schreiben. Tue es aber auch nicht (zumindest nicht zum Thema hier). Respekt an Karl Heinz und die Kollegen, die sich immer wieder dazu hinreißen lassen doch helfen zu wollen.
Hallo Simon,
>>Die "MEISTEN der leute, die wirklich Ahnung haben" klauen hier nichts um
es zu verkaufen.<<
das habe ich auch nie gesagt.
was hätte ich den einstellen sollen wenn ich zu blöde bin mein studio zu
bedienen? den code in dem ich einen port auf ausgang stelle und dann ein
bit im portregister setzte, von dem ich weiß das er läuft, wie oben
bereits gesagt?
oder vielleicht die studioversion, compilerverion und das ich
rechtshänder bin.
m.
ähm so wie ich das lese sind die ersten antworten reine veralberung weil du in deinem eröffnungspost nicht sagst welche µC es ist .. weder code postet noch irgendwas anderes preisgibst und das bis jetzt noch nicht getan hast deswegen : - deine beschaltung posten - dein programmcode der nicht geht posten woher soll auch nuer einer hier ahnen was du in den tiefes des AVR studios da reingeschrieben hast schreibs einfach rein und dir wird geholfen
maddin schrieb: > was hätte ich den einstellen sollen wenn ich zu blöde bin mein studio zu > bedienen? den code in dem ich einen port auf ausgang stelle und dann ein > bit im portregister setzte, von dem ich weiß das er läuft, wie oben > bereits gesagt? Ach wenn du wüsstest, wie viele hier behaupten das ihr Code fehlerfrei ist. :-) Ja, du hättest den Code posten sollen. Glaubs oder glaubs nicht, auch bei sowas Simplem gibts genug Leute die 20 Fehler dabei einbauen. Niemand hier kennt dich, niemand weiß womit wir es bei dir zu tun haben. Soo eine Riesenarbeit ist es dann auch wieder nicht, den Code per Copy&Paste einzustellen. Die Regulars werfen einen Blick drauf und wissen, dass sie in der Richtung nicht mehr weitersuchen müssen. Du musst dir immer vor Augen halten, dass wir auf dieser Seite des Bildschirms dir nicht über die Schulter schauen können. Also gehen wir mal vom Naheliegensten aus: Du hast einen Codefehler. Bei deiner Fehlerbeschreibung ist auch die M103 Fuse ein heisser Kandidat, genauso wie die JTAG Fuse bei Problemen am PORTC bei vielen hier einen automatischen Reflex auslöst. Aber zunächst mal klappern wir die naheliegenden, üblichen Fehlerursachen ab, ehe wir uns in die esoterischen Fehlerquellen vorwagen. Wenn du mithilfst, die üblichen Fehler schnell ad acta zu legen, ist uns allen geholfen und wir können anfangen nach dem tatsächlichen Problem zu fahnden.
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.