Verständnisproblem ADC

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Verständnisproblem ADC

      Hallo, ich habe ein kleines Verständnisproblem zum ADC. In allen Beispielen die ich finde wird in der DO LOOP schleife der ADC über GETADC(0) einer Variablen zugewiesen und mit dieser Variablen weiter gerechnet. In meinem Programm habe ich es so gelöst und es funktioniert auch.

      Source Code

      1. 'ADC
      2. Config Adc = Single , Prescaler = Auto , Reference = Avcc
      3. Adwandler1 Alias Getadc(0)
      4. Start Adc
      5. Do
      6. If Adwandler1 > 600 Then Gosub Senken
      7. If Adwandler1 < 400 Then Gosub Heben
      8. Loop
      Tue ich durch Alias Getadc(0) auch den Wandler auslesen? Ist das so korrekt oder muss man das über eine Variable machen so wie in den Beispielen?

      Gruß, Martin
    • Nach Bascom-Hilfe ist der Alias zur Namens-Benennung von Pins vorgesehen.
      Eine andere Verwendung ist wohl nicht vorgesehen.

      Pac-Man wrote:

      Warum funktioniert es auch so?
      Darüber kann man nur spekulieren.

      Zum Vergleich: In C/C++ können Alias-Definitionen mit "#define" festgelegt werden. Der Precompiler nimmt dann Text-Ersetzungen vor. Da kann man alles mögliche als Alias schreiben.

      Teilweise wird das wohl auch in Bascom funktionieren, aber verlassen würde ich mich nicht darauf!

      Hier ein Beispiel mit INT0 / INT1

      BASCOM Source Code

      1. myInterrupt Alias INT0 ' Auswahl INT0 | INT1
      2. Config myInterrupt = Rising ' ext. Interrupt auf steigende Flanke konfigzrieren
      3. On myInterrupt ISR_MyInterrupt ' ISR setzen, das funktioniert mit Alias nicht!
      Bei "On <interrupt>"
      wird der Alias beispielsweise nicht akzeptiert, leider.

      Daher gilt, wie @Michael schon geschrieben hat, eine Variable zu verwenden.

      Im Übrigen wird bei deiner Variante 2x gewandelt. Je nach Anwendung kann das nachteilig sein.