Fragen zum Interrupt

Es gibt 7 Antworten in diesem Thema, welches 771 mal aufgerufen wurde. Der letzte Beitrag (29. März 2025 um 20:15) ist von GI-Joe.

  • Hi.

    Läuft der Interrupt alle 50telsec (Vic Timing) oder alle 60stel ab?

    Die Jiffies laufen doch im 1/60 Takt.

    Ich spreche vom IRQ.

    So, wie genau wird der IRQ erzeugt? Ich habe nebulös in Erinnerung, dass die Timer von einer CIA, wenn der Zähler bei null ist, einen Interrupt auslöst 0

  • IRQ = Interrupt Request, Anforderung einer Unterbrechung. Beim 6502 ist das im Prinzip so gelöst, dass am IRQ-Pin ein Signal von Außen (außerhalb des Prozessors) kommt. Das können CIA oder VIC serin, oder eine Hardware am Expansionsport.

    Bei unserem C64 ist das so eingestellt, dass ein CIA-Timer 60mal in der Sekunde runterläuft, aber das kann man beliebig umprogrammieren. Ein schlichter VIC-Rasterirq kommt 50 mal je Sekunde, einmal pro Frame.Ode rman stellt einen CIA-Timer auf 126 Takte für irgendwelche FLI-Effekte ein.

  • Steht alles in Bitte melde dich an, um diesen Link zu sehen. bzw. dort verlinkt.

    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Wie stelle ich das auf 1/50 um?

    indem Du die richtigen Werte nach $DC04 (lowbyte) und $DC05 (highbyte) schreibst und den Timer danach neu startest.

    Oder Du lässt den VIC 1x pro frame den IRQ auslösen, dann haste (bei PAL) auch deine 50 Hz like Hoogo sez :smile:

    Systemtakt (PAL) 985260 / 50 = 19705,2 ~ $4CF9

    also:

    lda #$f9

    sta $dc04

    lda #$4c

    sta $dc05

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.

  • Blöde Frage: Wie starte ich den Timer?

    DC04-$DC05
    56324-56325
    Timer A. Lesen: Aktueller Timerwert.
    Schreiben: Timer-Startwert festlegen.
    $DC06-$DC07
    56326-56327
    Timer B. Lesen: Aktueller Timerwert.
    Schreiben: Timer-Startwert festlegen
  • Blöde Frage: Wie starte ich den Timer?

    DC04-$DC05
    56324-56325
    Timer A. Lesen: Aktueller Timerwert.
    Schreiben: Timer-Startwert festlegen.
    $DC06-$DC07
    56326-56327
    Timer B. Lesen: Aktueller Timerwert.
    Schreiben: Timer-Startwert festlegen

    Ich empfehle dir diesen Magic-Disk-Kurs (durchsuchbares PDF):

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Blöde Frage: Wie starte ich den Timer?

    ; start timer A

    lda #$01

    sta $dc0e

    ; start timer B

    lda #$01

    sta $dc0f

    Viele Grüße,
    GI-Joe
    Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen. * Bitte melde dich an, um diesen Link zu sehen.