-         

+ Antworten
Ergebnis 1 bis 3 von 3

Thema: die erste isr so kann das doch niemals laufen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210

    die erste isr so kann das doch niemals laufen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    servus ich versuch mal mich an der ersten interrupt service routine

    chip tiny26

    timer1

    Code:
    '/////////////////////////////////////////////////////////
    '///  Bascom ISP Programmer TEST timer1                      ///
    '///   toggle portb.3
    '/////////////////////////////////////////////////////////
    $regfile = "AT26def.dat"                                    ' used device
    $crystal = 8000000
    
    $hwstack = 32                                               ' default use 32
    
    $swstack = 10                                               'default use 10 for
    
    $framesize = 40                                             'default use 40 for
    
    
    Dim T As Byte
    Dim Ph As Bit
    Dim A As Byte
    Led Alias Portb.0
    Set Timsk.2                                                 'enable interrupt
    Set Timsk.6                                                 'compare1a
    
    Tccr1a = 64                                                 'toggle ocr1a
    Tccr1b = 7                                                  'clock 64
    
    Enable Interrupts
    On Timer1 Isr_timer1
    Set Ddrb.3
    Ocr1c = 255                                                 'hier output von compare1a
    Ocr1a = 125                                                 ' 1ms mitte servo
    
    Do
    
    For T = 1 To 255
     Waitms 100
     Next
    
    Toggle Led
    For T = 255 To 1 Step 1
     Waitms 100
     Next
    
    Toggle Led
    
    
    Loop
    
    End
    
    Isr_timer1:
    
    If Ph = 1 Then
     Ocr1a = 63                                                 '0,5ms unterste grenze der high
      For A = 0 To T Step 1
      Ocr1a = 10                                                'je wert high + 8µs
      Next A
     Ph = 0
    Else
     For A = 0 To 10                                            'low fase 10*2ms
     Ocr1a = 250
     Next A
     Ph = 1
    End If


    so kann doch das niemals laufen
    als gegenstück zu servo gedacht

    ich möchte das genau haben und gerne verstehen wie diese routinen laufen

    so auf keinen fall

    der tnc1 ist doch beim tiny ein upcounter und kommt dann an den ovf1 timer owerflow


    bitte um hilfe

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210
    scheint keiner da zusein der helfen kann
    bin in anderem forum fündig geworden

    also das mit den ports ist HARDWAREMÄSSIG gerefelt
    siehe pinconfig im datenblatt des µC

    port b3 ist oc1b

    mal weiterprobieren

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.02.2007
    Beiträge
    210
    Zitat Zitat von magic33
    scheint keiner da zusein der helfen kann
    bin in anderem forum fündig geworden

    also das mit den ports ist HARDWAREMÄSSIG gerefelt
    siehe pinconfig im datenblatt des µC

    port b3 ist oc1b

    mal weiterprobieren

    ICH HABS ISR ises zwar nicht aber es läuft autonom auf ocr1b
    Code:
    '/////////////////////////////////////////////////////////
    '///  Bascom ISP Programmer TEST timer1                      ///
    '///   toggle portb.3
    '/////////////////////////////////////////////////////////
    $regfile = "AT26def.dat"                                    ' used device
    $crystal = 8000000
    
    $hwstack = 32                                               ' default use 32
    
    $swstack = 10                                               'default use 10 for
    
    $framesize = 40                                             'default use 40 for
    
    Config Portb = Output
    
    
    Led Alias Portb.0
    
    
    Tccr1a = 17                                                 'toggle ocr1b in pwm mode
    Tccr1b = 135                                                'clock PRESCALE 64  ctc1 an relod nach compare b/c
    
    Ocr1b = 125                                                 'vorlasen servo mitte
    Ocr1c = 255                                                 'compare zahl
    
    
    Enable Interrupts
    
    Do
    
    Wait 2                                                      ''                                                           '                                                            '                                                           '                                                          '                                                           '                                                           '                                                          '                                                          '                                                           '
    Toggle Led
    Ocr1b = 192                                                 '0,5ms servo links
    
    Wait 2
    Toggle Led
    Ocr1b = 63                                                  '1,5ms servo rechts
    
    Loop
    
    End                                                         'pulsbreite 2ms

+ Antworten

Berechtigungen

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