-         

Ergebnis 1 bis 3 von 3

Thema: Servos/Interupt-problem

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    29.08.2008
    Beiträge
    73

    Servos/Interupt-problem

    Anzeige

    Hey leute,

    ich versuche ein Signal zur Servosteuerung zu erzeugen.

    Dazu habe ich folgende ISR geschrieben

    Code:
    ISR(TIMER0_OVF_vect)
    {
        TCNT0 = preload0;
        countTimer0++;
    
        
        if(countTimer0 <= 2000)
            countTimer0 = 0;
    
    
        if(countTimer0 == 0)
            PORTA |= (1 << 1);
    
        if(countTimer0 == 100 + Servo1)
            PORTA &= ~(1 << 1);
                
    }
    der Timeroverflowinterupt wird alle 10µs ausgelöst so dass 2000 Aufrufe gerade 20ms ergeben. Die Variable Servo enthält zu Beginn den Wert 50.
    Also sollte der PinA2 nach 1,5ms wieder auf LOW gehen.
    Aber das klappt iwie gar net. Da alles so schnell geht kann ichs mit ner LED nicht testen und nen oszi habe ich net.

    Jetzt meine Frage kann das so überhaupt klappen ?
    und könnte es sein, dass der Storm aus dem AVR (ATMEGA32) nicht zum Steuern der Taktleitung ausreicht ?

    Wenn das nicht ausreicht sagt mir bitte welche Infos ihr noch benötigt.

    Vielen Dank für eure hilfe.

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    countTimer0++;

    if(countTimer0 <= 2000)
    countTimer0 = 0;


    countTimer0 wird nie größer als 1!

    (1 << 1) ist eine 1 einmal nach links geschoben, also 0b00000010 oder PA1!

    (1 << 0) 0b0000 0001 PA0
    (1 << 1) 0b0000 0010 PA1
    (1 << 2) 0b0000 0100 PA2
    ...
    (1 << 7) 0b1000 0000 PA7
    Geändert von radbruch (30.03.2011 um 22:48 Uhr)

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.08.2008
    Beiträge
    73
    Danke,

    ich bin so ein Trottel < mit > verwechselt das sollte mir eigentlich selbst auffallen müssen. Das ist jetzt iwie peinlich.

    Das: (1<<1) is schon richtig der servo is am Port PA1 war nur für PA1 zu faul und ich selbst finde das mit nur der zahl einfacher zu verstehn.

    Danke noch mal für die schnelle Hilfe

    PS. Jetzt funktioniert es sogar zwar noch nicht 100% aber der Rest is Feintuning

    PSPS. es ist doch immer gut zu wissen wo man wen findet der mal über den Code drüber schaut! Gut das es dieses tolle Forum gibt

Ähnliche Themen

  1. Interupt 0 und 1 ohne Funktion
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 23
    Letzter Beitrag: 29.10.2007, 22:12
  2. ATmega32 Interupt Problem
    Von FireFly im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 03.05.2007, 09:18
  3. Atmega16 Uart interupt
    Von wolfi-25 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 14.08.2005, 19:04
  4. [ERLEDIGT] Interupt Port sparen
    Von im Forum Elektronik
    Antworten: 10
    Letzter Beitrag: 13.10.2004, 16:02
  5. [ERLEDIGT] ext Interupt bei Mega16
    Von im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 30.09.2004, 15:51

Stichworte

Berechtigungen

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