-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Interrupt probleme

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    22.03.2012
    Beiträge
    80

    Interrupt probleme

    Anzeige

    Hallo

    Ich habe ein Problem mit den Interrupts
    ich möchte gern meine Modellbauservos ansteuern dafür brauche ich allerdings Interrupts (interrups enabel)
    da ich dabei auch einen Poti mittels adc auslesen möchte müssen die Interrupts ja aus sein

    Da ist jetzt das Problem wie schaffe ich es für den einen Befehl die Interrupts einzuschalten und für den anderen nicht

    Ich habe auch noch ein 2 Problem
    wie ihr in dem folgendem Programm sehen könnt verwende ich ein 16*2 lcd und möchte auf diesem meine werte anzeigen aber dieser zeigt 0 oder 1023 an und nicht die Zwischenwerte von meinem Poti

    $crystal = 1000000
    $regfile = "m16def.dat"

    Config Porta.0 = Input
    Config Portd.7 = output

    Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , _
    Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0

    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Interrupts
    Config Servos = 1 , Servo1 = Portd.7 , Reload = 10


    Config Lcd = 16 * 2
    Cursor Off

    Dim Volt As Integer
    Dim Winkel As Integer




    Start Adc

    Do
    Volt = Getadc(0)

    Winkel = Volt / 37
    Winkel = Winkel + 10

    servo(1)=winkel


    Locate 1 , 1
    Lcd Volt

    Locate 2 , 1
    Lcd Winkel


    Loop

    End
    Geändert von Zardest (22.03.2012 um 23:57 Uhr)

  2. #2
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    27
    Beiträge
    3.517
    Blog-Einträge
    9
    Hi,

    "Enable Interrupts" sorgt dafür das Interrupts Global aktiviert werden. Es ist quasi der Hauptschalter für die Interrupts.
    Du kannst einzelne Interrupts aktivieren z.B. für den ADC oder UART aber ohne das globale aktivieren der Interrupts funktioniert das nicht.
    Wenn du also einen Interrupt nicht haben willst (z.B. vom ADC) deaktivierst du diesen einfach. Die anderen aktivierten Interrups funktionieren dann problemlos weiter.
    Aber in deinem Programm verwendest du ja nicht den ADC Interrupt, deswegen sollte er nicht stören.
    Den Schleifer vom Poti hast du aber auch an dem ADC0 Pin?
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    22.03.2012
    Beiträge
    80
    Ja ich hab den Mittelabgriff an den PortA.0 er funktioniert auch ich hatte es mal am Laufen aber jetzt zeigt er nur noch 1023 oder 0 an

    Ja das Problem ist wenn ich die Interrupts einschalte funktioniert der Servo aber der adc nicht und wenn die Interrupts aus sind funktioniert der adc aber der Servo nich
    Geändert von Zardest (22.03.2012 um 23:45 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    An sich sollte der ADC auch mit den Interrupts gehen.
    Der Befehl start ADC könnte ein Problem sein und nicht das tun was man erwartet. Damit wird der Interrupt des ADC freigegeben, nicht der ADC gestartet.

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.410
    Blog-Einträge
    101
    Ich kann erstmal keinen Fehler im Programm feststellen

    Bringen folgende zusätzliche Zeilen im Header etwas?

    Code:
    $hwstack= 34
    $swstack= 10
    $framesize= 40
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    22.03.2012
    Beiträge
    80
    Danke werde ich sofort einmal ausprobieren.

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.02.2006
    Beiträge
    1.112
    Zitat Zitat von Besserwessi Beitrag anzeigen
    Damit wird der Interrupt des ADC freigegeben, nicht der ADC gestartet.
    Hallo Besserwessi,
    wo hast du denn das gelesen?
    Start ADC schaltet den ADC ein (setzt ADCSR.ADEN), was übrigens in neueren Bascom Versionen auch schon durch den Config ADC geschieht. Ist also hier überflüssig und wird nur benötigt, falls man den ADC zwischenzeitlich mal mit Stop ADC ausgeschaltet hat.
    Enable ADC würde den Interrupt aktivieren.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    22.03.2012
    Beiträge
    80
    Hallo
    nach einer großen Pause widme ich mich wieder meinem Projekt mit dem adc kann es sein das mein Code richtig ist und der Poti funktioniert aber dass ich an meinem atmega den Pin avcc mit 5v versorgen muss weil ich ja gesagt habe, dass er es mit diesem Pin vergleichen soll ? Müsste es dann nicht funktionieren? Weil es funktioniert ja eigentlich nur er zeigt mir 0 oder 1023 an, weil er es ja nicht vergleichen kann, ich werde es morgen auf jeden Fall testen. Wie muss ich eigentlich die anderen adc Ports konfigurieren muss also was ich verändern muss das ich Porta.1 als adc nutzen kann?

  9. #9
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Den Pin AVCC muss man in jedem Fall versorgen. Es sind nur Ausnahmefälle, außerhalb der Spezification das der µC noch läuft ohne.

    Wie man die anderen Pins von Port A konfiguriert ist relativ egal - den als ADC Eingang benutzten sollte man als Eingang, ohne Pullup einstellen. Je nach µC sollte man auch noch den Digitalen Eingang für den Pin ausschalten - das ist aber kein muss, sondern nur eine Empfehlung für weniger Störungen und weniger Stromverbrauch.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    22.03.2012
    Beiträge
    80
    Sorry aber ich meinte nicht den Haupt avcc gibt ja 2 avcc am atmega16 und ich habe immer nur an einen 5v gegeben aber auch wenn ich an beide 5v gebe funktioniert es nicht könntet ihr mir mal ein kleines Programm schreiben aber mit lcd 16*2 das Ich auch sehen kann welche werte ich messe

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Probleme mit Interrupt!
    Von doolitle15 im Forum PIC Controller
    Antworten: 1
    Letzter Beitrag: 12.05.2008, 12:48
  2. Interrupt Probleme mit PORTB
    Von komek im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 30.10.2007, 11:33
  3. Interrupt probleme!!
    Von asuroer im Forum Asuro
    Antworten: 27
    Letzter Beitrag: 09.10.2007, 19:09
  4. Probleme mit Interrupt
    Von Eris im Forum Robby CCRP5
    Antworten: 0
    Letzter Beitrag: 01.09.2004, 22:21
  5. probleme mit Interrupt
    Von joh33 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 29.07.2004, 11:33

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •