Moin... Bin der Neue (Alte) und brauch mal Starthilfe (tiny44 ADC)

M*I*B

Neues Mitglied
14. Mai 2022
3
0
1
Meißendorf
Sprachen
  1. BascomAVR
  2. Assembler
Hallo liebe Forengemeinde,

ich habe mich hier heute angemeldet, weil ich über 10 Jahre nichts mehr damit gemacht habe und Starthilfe benötige. Da merkt man doch schon, das man älter wird (meggerschimpf). Vielleicht ist hier jemand so freundlich und hilft mir mal über meine Blockaden hinweg, bis ich wieder selber laufen kann? Das wäre super!

Also...
Bascom in der Version 2.0.7.8 liegt mir hier als lizensierte Version noch vor. Zudem liegen hier noch drei Tiny44 rum, von denen ich einen für mein Projekt verwenden möchte.

Ich weis ehrlich gesagt nicht, wie ich anfangen soll; da klemmt es schon...

Ziel ist das Auslesen fünf analoger Werte. Ein Wert (0,5 - 4V) kommt vom Analogausgang eines Drucksensors. Die anderen 4 Werte sollen voll Retro mit Potis vorgegeben werden, da das Ganze als Ersatz einer uralten, analogen Steuerung dienen soll, welche abgebrannt ist (im Sinne des Wortes).
Dann hätten wir da noch 4 digitale Ausgänge. Ein Ausgang muss nach dem Init für 1-2 Sekunden auf L gehen, um den Drucksensor zu nullen (uraltes Teil mit geilem Drift). Ausgang zwei schaltet eine kleine Hydraulik- Pumpe (via FET & Relais), Ausgang 3 und 4 jeweils ein Magnetventil (via FET).

Von der reinen Hardware her habe ich damit absolut keine Probleme. Aber ich weis z.B. überhaupt nicht, wie ich in einer Loop die 5 analogen Eingänge (PA0 bis PA4 dachte ich) abfragen soll. Habe ich m.W. auch früher nie gemacht und stehe da gerade wie der Ochs vor'm Berg ^^
Eine weitere Hürde ist die Handhabung von Timer1. Ich denke, Timer0 greift zu kurz, da ich Verzögerungen von mindestens 120 Sekunden generieren muss (nicht gleichzeitig).

Natürlich, kann man das Ganze auch klassisch mit Komperatoren und Timern aufbauen. Das war auch mein ursprünglicher Plan... Bis die alte graue Masse zwischen meinen Ohren auf die glorreiche Idee gekommen ist, doch mal wieder was mit Bascom und Tiny zu machen :hmmmm:

Ok... habe erst mal fertig. Mal sehen, wer sich hier so als Opfer hergeben mag :flute:
 
Zuletzt bearbeitet:
Moin M*I*B, und willkommen im Forum.

Hab Deinen Thread gelesen, sollte (gerade unter Bascom) eigentlich ganz einfach umzusetzen sein. Ist mir jetzt aber am Smartphone zu umständlich.

Ganz kurz:
Der Timer wird auf IRQs im geeigneten Intervall eingestellt (zB 1s), in der ISR wird dann ein Sekundenzähler hochgezählt (Zeitbasis).
Nach dem Init in der Hauptprogrammschleife prüfst Du, ob Wert x erreicht wurde, setzt die Zeitbasis wieder zurück, und erfaßt Deine analogen Werte (getadc).
Für die 120s ggf eine zweite zeitzählvariable.

Der Tiny44 scheint ja nach einem kurzen Blick in meine Tiny-Übersicht (meine Signatur) fast perfekt zu passen - unter Bascom kannst für's Debugging mit den restlichen Pins noch'n UART (Software) nutzen.
 
... danke erst mal für Deine Nachricht.
Ja, so unrecht hast Du nicht. Mit Bascom sollte das eigentlich kein Thema sein. Aber da ich hauptsächlich davon lerne, wie andere sowas machen, suche ich eigentlich so eine Art CodeSnippsel, wie man z.B. die 5 ADC sinnvoller Weise abfragt beim 24/44. Also sowas, wo ich abkucken kann. Dann entsteht bei mir meist eine Art Eigendynamik, sobald ich über einen bestimmten Lernlevel komme. Unter diesem Leven drehe ich mich oft ewig im Kreise oder mache irgend welchen vollkommen verqueren Quatsch, der mich vollkommen in die Irre führt.
 
suche ich eigentlich so eine Art CodeSnippsel, wie man z.B. die 5 ADC sinnvoller Weise abfragt beim 24/44
Eigentlich ist die Online-Hilfe (bzw auch die bei Bascom selbst?) die erste Adresse.

Getadc - das erste Code-Beispiel solltest Du doch auf den Tiny24 anpassen können...
Am Rande: der Tiny24/44/84 kann auch differentielle Messungen (wahlweise mit GainAmplifier=20) - inwiefern Bascom das nativ unterstützt, weiß ich nicht - über die Register direkt gehts immer - aber Dir werden sicher single ended Messungen reichen.
Als Referenz sind Vcc, die Aref (extern) oder die interne 1,1V-Referenz wählbar. Das stellst Du mit Config Adc ein.

Ich würde als erstes ein simples HalloWelt-Programm schreiben
(also die üblichen Compilerdirektiven für den Tiny (neues leeres Programm, und dann wählst Du Menü -> Optionen -> Compiler -> Chip -> aus dem DropDown den ATtiny44, und dann den Button Add to Code.)
Da der Tiny keinen Hardware-UART hat, verwendest Du fürs Debugging 'nen Soft-UART.
Dann einfach mal ein HalloWelt printen.

Wenn das geht, als nächstes 'ne Endlosschleife, und mit Getadc einen Channel messen, und das Ergebnis printen (ggf am Ende der Schleife erstmal ein wait um die Terminalausgabe nicht zu fluten).
Nächster Schritt wäre dann, in der schleife mehrere Kanäle zu messen und auszugeben. Also nicht wie im beispiel mit einer For-Schleife, sondern Einfeich Deine Kanäle nacheinander.

Und dann müßtest Du Dir konkretere Gedanken über den letztendlich umzusetzenden Zustandsautomaten machen, insbesondere um die nötigen Zeiten festzulegen.
Dann den Timer-IRQ, meinetwegen als Zwischenschritt im Sekundentakt einmal alle Kanäle messen und ausgeben.

usw...
 
... ohh jo! Das hilft mir ne ganze Ecke weiter! Vielen Dank!
Dann werde ich mich mal ab morgen ans Werk machen und mal schauen, was ich so zusammen bekomme.
Wenn man von mir ne Weile nix hört, hat das aber nix zu sagen. SO bald ich auf Probleme Stoße oder wider Erwarten den Trum zum Laufen bekomme, melde ich mich auf jeden Fall...

Danke noch mal... Wird schon... Jetzt habe ich ja eine Schnur, an der ich mich langhangeln kann ...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)