Gefunden für bascom adc wert - Zum Elektronik Forum |
| 1 - Spannungswächter aus Resten ;-) -- Spannungswächter aus Resten ;-) | |||
| |||
| 2 - Registerinhalte zusammenfassen/addieren -- Registerinhalte zusammenfassen/addieren | |||
| Hallo Männers!
Ich bräuchte mal etwas Hilfe/Denkanstösse bei binärer Arithmetik. Irgendwie war ich da wohl grad Kreide holen... Wenn ich den ADC (beim Mega8) mit 10 Bit laufen lasse,(mit 8 Bit kann ichs im Schlaf)hab ich dann im Register ADCH die ersten 8 Bit,im Register ADCL (Bit 7 und 6) dann die restlichen beiden. Wie addiere ich das dann,das es zum Schluss als Wert in einer Variablen steht?
Ich könnte/kann mir es einfach machen,da ich eh nur mit Bascom arbeite. Da mach ich dann: Dim X as Word X = Getadc(0) Den Rest macht Bascom,bzw. der Compiler. Aber ich möchte gern verstehen,was da passiert,bzw "gerechnet" wird. Für den Fall,das ich das mal händisch machen will/muß. Danke! Eilt aber nicht.
Edit: Wo ist eigentlich Jornbyte abgeblieben?
[ Diese Nachricht wurde geändert von: Kleinspannung am 14 Mär 2013 22:44 ]... | |||
3 - Variable+Wertebereich = Problem -- Variable+Wertebereich = Problem | |||
| Kommt drauf an, gibt viele Möglichkeiten:
Du hast 256 versch. Kombinationsmöglichkeiten. Wieviele "Treppenstuffen" sollen denn vorhanden sein? Wenn jeweils nur beim übernächsten Wert geschaltet werden soll, oder beim vierten, achten, etc. oder allgemein beim Vielfachen von 2^n, dann teilst du durch n (n mal alle Bits nach rechts schieben) und gibts das ganze auf ein Select-Case-Konstrukt: dim i as byte i = ADC i = i / 4 select case i case 0: ... case 1: .... end select Du kannst auch, wenn genügend SRAM vorhanden ist und die Treppe nicht linear ist, ein Array mit Anzahl Indizes wie möglichen ADC-Werten anlegen, zu Anfang dann manuell das Array füllen und dann sagen: dim i as byte i=ADC PWM = tab[i] EditIn Basic greift man auf Arrays mit normalen Klammern zu, das hier war C. Es müsste heißen: PWM = tab(i) Etwas effizienter ginge das weniger abstrakt direkt im Flashrom mit Tabellen, also quasi das gleiche wie mit Arrays, nur SRAM-schonender. Nur wie das in Bascom geht - keine Ahnung. Edit: Ha! Ich bin sowas von Blondine... Meine Haare sind fast so lang, dass sie zum Bauchnabel reichen ... | |||
| 4 - Messsignalauswertung im ADU Atmega32 -- Messsignalauswertung im ADU Atmega32 | |||
Tja,wie gesagt viel Plan habe ich auch nicht...
Und assembler ist mir so unbekannt wie das innere des Mondes,ich habe es nur mit Bascom geschafft Spannungen zu messen und umzuwandeln. Zumindest mit 8 Bit,bei 9 und 10 komme ich mit der Verarbeitung des Hi und Low Wertes noch nicht klar.... Was ich bisher weiß(auf den Mega8 bezogen) Du kannst direkt nur bis Vcc messen.Also 5V.Bei mehr brauchst nen Spannungsteiler. Der ADC kann freilaufend oder zur Einzelmessung konfiguriert werden. Bei Einzel muß jede Messung im Programm extra gestartet werden. Du sagst dem ADC,welchen Eingang er nehmen soll. Definierst eine Variable,wo er das Ergebniss der Wandlung ablegt. Ist er fertig,hast du je nach gewählter Auflösung einen Wert darin stehen. Wie du das aber jetzt weiterverarbeitest und zur Anzeige bringst
So weit bin ich auch noch nicht vorangekommen
... | |||
| 5 - Rausch\"generator\" für 5V Betriebsspannung==> möglich? -- Rausch\generator\ für 5V Betriebsspannung==> möglich? | |||
| Hmhm... ich sags mal so:
http://www.youtube.com/watch?v=Fo4SblJ_SnU Hab jetzt den ADC neu programmiert. Er läuft nicht frei, löst mit 8 Bit auf, hat als Referenz die internen 5V und es wird der ADC noise reduction mode gebraucht und an AREF hängen 100nF gegen GND. Zum starten der Konversion wird in diesen Sleep-Mode gewechselt, danach wacht er durch den ADC-completion-Interrupt wieder auf. Das Bild im Anhang zeigt eine Messung mit vier Millionen Konversionen.. Wieso denn das plötzlich?? Sieht mir wie ne Glockenkurve aus, nur halt zackig.
Hardwareseitig ist alles gleich, am Oszi schaut das Rauschen wie vorhin aus. Die Keksdose als Abschirmung des Steckbrett-Aufbaus war nicht in Verwendung. Die Samplingfrequenz für den ADC liegt bei etwa 750kHz. (ist das der Fehler?) Hier mal der verwendete Code:(Bascom) |
|
Zum Ersatzteileshop Bezeichnungen von Produkten, Abbildungen und Logos , die in diesem Forum oder im Shop verwendet werden, sind Eigentum des entsprechenden Herstellers oder Besitzers. Diese dienen lediglich zur Identifikation! gerechnet auf die letzten 30 Tage haben wir 7 Beiträge im Durchschnitt pro Tag heute wurden bisher 0 Beiträge verfasst 1 Besucher in den letzten 60 Sekunden alle 60.00 Sekunden ein neuer Besucher ---- logout ----su ---- logout ---- |