Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

ISR_10ms Kategorie: Programmierung Basic (von Thomas - 8.03.2010 11:42)
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board
Hallo,
ich habe ein kleines Problem. Ich starte bei meiner cc128 den 10ms Interrupt von Timer2.
Darüber möchte ich die Tastatur abfragen und mir die DCF-Zeit holen.
Wenn ich aber jetzt im Sub_main() in der DO...Loop Schleife auch noch Code ausführe dann
verlangsamt sich die Interrupt-Routiene extrem. Teilweise dauert ein Interrupt-Durchlauf 30ms
und mehr.... Unten habe ich mal ein bisschen vom Code eingestellt.......


'------------------------------------------------------------------------------
' 10ms Interruptroutiene
'
Sub INT_10ms()
    Dim irqcnt As Integer
    DCF_PULS()                              ' DCF_MODE=1 Puls suchen
    DCF_SYNC()                              ' DCF_MODE=2 Synchronisation
    DCF_FRAME()                           ' DCF_MODE=3 Datenaufnahme
    Key_Input()                                ' Funktionsaufrauf: Tastaturabfrage
    irqcnt=Irq_GetCount(INT_TIM2COMP)       ' Interrupt Request Counter
End Sub


'------------------------------------------------------------------------------
' Hauptprogramm
'
Sub main()

    Serial_Disable(1)                       ' 2. RS232 abschalten
    SPI_Disable()                           ' SPI abschalten
    LCD_Init()                                ' Display initialisieren
    LCD_ClearLCD()                       ' Display löschen
    LCD_CursorOff()                       ' Display Cursor ausschalten
    Key_Init()                                 ' Keyboard initialisieren
    I2C_Init(I2C_100kHz)                ' I2C-Bus mit 100kHz Initialisieren
    DCF_INIT()                               ' Initialisierung des DCF Modes

    Irq_SetVect(INT_TIM2COMP,INT_10ms)      ' Interrupt Service Routine definieren für Key & DCF
                                                                    ' Timer2 erzeugt einen 10ms interrupt
    DCF_START()                          ' Starten des DCF Modes


    Do While 1                              ' Endlosschleife
                                                  ' Hier wird eigener code ausgeführt
    End While



Nun meine Frage: Tastatur, LCD, DCF und ein Paar Ports schalten ist doch nicht zuviel
verlangt? Oder habe ich einfach nur einen Denkfehler?

Danke schon jetzt für die Antworten.

GruÃ?
Thomas


    Antwort schreiben


Antworten:

Re: ISR_10ms (von PeterS - 8.03.2010 13:43)
    Re: ISR_10ms (von Thomas - 8.03.2010 18:47)
        Re: ISR_10ms (von PeterS - 9.03.2010 9:50)
            Re: ISR_10ms (von Tron - 11.04.2010 17:34)