Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

...
  Vielleicht kann hier ein GCC-Kollege das Beispiel einfügen 
...

Vielleicht mal sagen, was man haben will bzw was die Blackox 'Pulsein' tut. Ich hab grad keine Lust, BASCOM zu installieren und zu debuggen ;-)

Es gibt 1000 Möglichkeiten, Zeiten zu messen...


Es geht nicht darum das man die Funktion nachbaut sondern das man die gleiche Aufgabe in GCC erfüllt. Wie du das machst bleibt Dir überlassen, es sollte nur eine möglichst kompakte Lösung sein. Decodieren eines RC-Signales. Dazu muss die Zeit bis zum Pegelwechsel gemessen werden (siehe Servos).

--Frank 02:24, 6. Dez 2005 (CET)



PickNick betrifft das GCC-Beispiel zu Pulsein! Es geht eigentlich nicht darum die Aufgabe Funktionell auf die gleiche Weise zu lösen (kann man natürlich auch machen). Es geht nur darum eine Lösung zu finden und diese aufzuzeigen damit Einsteiger die auch gleich nutzen können. Das könnte auch eine Timerlösung sein. Du hast jetzt einen denkbaren Aufruf eingetragen, aber die Lösung fehlt noch. Der leser sieht so auf den ersten Blick nicht das dort noch Code fehlt und könnte denken das wäre in C genauso einfach zu lösen wie in Bascom. Du solltest nochmal FETT markieren das hier noch die Lösung und das Programmgerüst fehlen, sonst ist die Gegenüberstellung etwas verfälscht.

--Frank 14:40, 21. Dez 2005 (CET)

Ich versteh' schon. Die Vorgabe von "pulsein" ist ja eigentlich unter die Gürtellinie. So zum Drüberstreuen (ohne Timer) mit relativ guter Genauigkeit Pulse messen geht in Hochsprachen (wenn wir C dazurechnen) einfach nicht. Aber gut, irgendwie kriegen wir das Code-Kästchen schon voll

--PicNick 15:01, 21. Dez 2005 (CET)


Siehst du etwas zu verbissen ;-) Es geht ja nicht darum Beispiele zu suchen die überall gleich funktionieren, sondern einfach zu zeigen wie man am schnellsten bestimmte Aufgaben lösen kann, und das wart eine ganz typische Aufgabe die man sehr oft braucht. Hätte es kein PulseIn-Befehl gegeben, hätte ich dort ein Bascom-Timer Beispiel gepostet. Auch ein C-Programmierer kann kleine Aufgaben posten die in Bascom nicht so leicht umzusetzen sind. Es geht um Lösungen nicht um direkte Algorithmen-Vergleiche.

--Frank 16:38, 21. Dez 2005 (CET)


Na, is ja auch egal, jetzt haben wir es schon, das war ja schon peinlich

--PicNick 17:08, 21. Dez 2005 (CET)


Nicht unbedingt peinlich, halt symptomatisch in C. Manche Dinge sind halt wesentlich aufweniger und erfordern viel mehr Zeit als in Basic. Was ist so schlimm daran dieses zuzugeben.

--Frank 15:53, 22. Dez 2005 (CET)


Was so schlimm ist ? Der Stolz, der Stolz ! "Geht nicht, gibt's nicht"

Willst du für Assembler sourcen auch eine "Sourcecode" Kategorie aufmachen a la Bascom und C ?

--PicNick 16:15, 22. Dez 2005 (CET)


Wenn Du ersten Assemblersource posten willst, leg nur an. Einfach Kategorie "Quellcode Assembler" nehmen damit Kategorienamen alphabetisch untereinander stehen.

--Frank 17:32, 22. Dez 2005 (CET)


Ich hab mich bei dem Sourcen-Vergleich mit Assembler-Beispielen wichtig gemacht. Ich würd' sagen, wenn's mehr wird, können wir ja eine Kategorie aufmachen. Wir werden ja sehen, wie das Geschäft läuft

--PicNick 19:24, 22. Dez 2005 (CET)


Die Schleife für die Zeitberechnung für avr-gcc hab ich in inline asm gefasst. Mit ist nur nicht klar, welche "magische" Zahl was bedeutet. Evtl wäre es klarer defines zu verwenden wie für F_CPU auch. Das ganze in inline zu packen ist der einzige Weg, halbwegs aussagekräftige Werte zu bekommen. Ausserem müssen Interrupts abgeschaltet sein, da sonst die Zeitmessung ebenfalls nicht stimmt. Übrigens ist nicht nur der Optimierungsgrad dafür verantwortlich, wie eine solche Schleife später in asm aussieht, sondern noch ganz viele andere Faktoren. Und es ist auch ziemlich umständlch, aus den Wiki raus in ne Quelle zu kopieren; besonders dann, wenn an vielen Stellen die Quelle durch Wiki-Text auseinandergebrochen ist. Da könnten vielleicht Fussnoten oder so was helfen, oder den Text in die C-Quelle integrieren, so daß man später im Programm auch noch weiß was das alles soll und macht.

--SprinterSB 14:54, 23. Dez 2005 (CET)


Die magischen Zahlen sind Cycles, INKLUSIVE while Schleife. Ich hoffe, der inline bewirkt das Gewünschte, die "Idle" schleife braucht 6 cycles.
Interrupts hab ich nicht disabled, weil's Bascom auch nicht tut.
Andere Faktoren ? zum Beispiel ? Du muß die Cycles aus der .Lss file zusammenrechnen
rauszukopieren: Ich seh das nicht als download-area. Wer das einfach 1:1 kopieren kann, hat nix davon.

--PicNick 15:12, 23. Dez 2005 (CET)


LiFePO4 Speicher Test