Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » U857 / Z80 CTC » Themenansicht

Autor Thread - Seiten: -1-
000
29.10.2008, 11:33 Uhr
jmueller



Hallo,

kann mir bitte mal jemand das exakte Verhalten der CTC
an ihren Zählerausgängen erklären, und zwar:
Wenn ein Zähler auf 0 zählt (Nulldurchgang),
wird dann an dem Zählerausgang nur ein Phasenwechsel vollzogen
oder ein vollständiger Impuls erzeugt?

Bedeutsam ist das z.B. bei der Reichenschaltung der einzelnen Kanäle,
z.B. wenn man den Ausgang des Kanals 0 mit dem Eingang
von Kanal 1 koppelt.
Wird bei jedem Nulldurchgang von Zähler 0 auch Zähler 1 dekrementiert?
Wenn das so ist, heißt das, am Zählerausgang wird immer
ein vollständiger Impuls ausgegeben.
Sollte aber nur ein Phasenwechel erfolgen, würde der nachfolgende Zähler
nur bei jedem zweiten Nulldurchgang dekrementiert werden.
Wie ist es genau?

Jens
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
29.10.2008, 11:39 Uhr
holm

Avatar von holm

Da gibts einen H Impuls, nicht nur einen Phasenwechsel.
Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
29.10.2008, 12:48 Uhr
jmueller



Danke!
Jens
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
08.04.2023, 18:11 Uhr
Lötspitze



Habe auch eine Frage zum 857er: wenn über die CTC eine Soundausgabe generiert werden soll, muß doch die CTC gegenüber z.B. einer PIO für die Tastatur in der Interruptkette die höchste Priorität haben, oder? Das bedeutet doch dann, daß der IEI-Eingang der CTC offen bleibt und der IEO-Ausgang der CTC bei angefordertem Interrupt letztendlich über ein LOW die niederpriorisierte PIO über deren IEI-Eingang sperrt. Liege ich da richtig?

VG Matthias
--
___________________
...geboren, um zu löten.

Wer rennen soll, muß auch mal stolpern dürfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
08.04.2023, 20:13 Uhr
maleuma



Fast richtig. Der Eingang IEI der CTC sollte an High gelegt werden, wie beim KC85/4. Dann hat die CTC die höhere Priorität.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
08.04.2023, 20:17 Uhr
Bert



Wenn ich das Interruptkonzept des Z80 richtig verstanden habe, sollte das auch gehen, wenn die PIO eine höhere Priorität gegenüber der CTC hat.

CTC und Soundausgabe ist etwas unkonkret. Welche Variante meinst Du:
A: Die CTC (bzw. ein Kanal der CTC) macht die Töne (=Tonhöhe) direkt. Dabei wird eher kein Interrupt genutzt.
B: Die Tondauer wird vom CTC gemacht. Dafür nutzt man sowas wie ein Interrupt alle 20 ms (50 Hz) oder programmiert die Tondauer direkt in den Kanal.

Wenn im Fall B die Tastatur dazwischen funkt, wird erst der PIO-Interrupt abgearbeitet. Nach RETI steht aber das IEO-Signal der CTC noch an und dann wird in den CTC-Interrupt gesprungen. Die INT-Leitung geht erst wieder auf high, wenn alle anstehenden Interrupts bedient wurden.

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
08.04.2023, 21:11 Uhr
Lötspitze



Hallo zusammen,

OK, dann muß IEI der CTC sicherheitshalber (über einen Widerstand) an die 5V.
@Bert: ich denke, wenn die CTC "Musik macht", muß sie Prio1 haben, damit die Tastatur und alles andere nicht dazwischenfunken kann.
Es geht um folgende Anwendung:



VG Matthias
--
___________________
...geboren, um zu löten.

Wer rennen soll, muß auch mal stolpern dürfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
09.04.2023, 08:15 Uhr
Bert



Die Tastatur funkt immer nur ganz kurz dazwischen, WIMIRE so ca. alle 30 ms.
Das kann man sich mit dem Oszi anschauen, wie häufig an PIOB.0 bis PIOB.3 die Zeilenleitung umgeschaltet wird.

Wenn ich mir die Schaltung so anschaue, werden zwei Kanäle (TO0, TO1) für die Tonhöhe verwendet (ohne Interrupt). Da bleibt immer noch ein Kanal für die Tondauer. Da sollte der PIO-INT nicht ernsthaft stören (das macht er ja bei Spielen auch nicht).

Außerdem glaube ich, das das abgebildete Testprogramm nicht funktionieren kann.
Hier mal als kommentierter Quelltext aus dem Disassembly:

Quellcode:

        ORG     0200h

        RST     20H
        DB      02H         ;PRST7

        DB      0CH         ; CLS
        DB      '         CTC-Control'
        DB      0DH
        DB      '         -----------'
        DB      0DH,0DH,0DH,0DH
        DB      ' (c) by Falk Tschoche'
        DB      0DH,80H+' '

        DI
        LD      A,03H
        OUT     (38H),A
        OUT     (39H),A
        OUT     (3AH),A
        OUT     (3BH),A
        
        LD      A,02H
        LD      I,A         ; Intverktor auf 02xxh
        
        LD      A,80H       ; 1000_0000
        OUT     (38H),A     ; Intverktor CTC = 80h
                            ;         0 = INT-Vektor
        
        LD      A,0A7H      ; 1010_0111
        OUT     (38H),A     ; INT aktiv
                            ;  Zeitgeber
                            ;   Vorteiler 256
                            ;    Start durch positive Flanke
                            ;      Start nach Zeitkonstante
                            ;       Zeitkonstante laden
                            ;        warten auf Zeitkonstante
                            ;         1 = Kanalsteuerwort
        
        XOR     A           ; 0000_0000
        OUT     (38H),A     ; Zeitkonstante
        
        IM      2
        EI
        HALT

        RST     38H         ; zentraler Fehleransprung -> ?#

        DI
        RST     20H
        DB      02H         ;PRST7
        DB      0DH,0DH,0DH
        DB      ' CTC OK !'
        DB      0DH,0DH,80H+' '

        LD      A,03H
        OUT     (38H),A
        RETI

        NOP
        NOP

        ; CTC-Interruptroutine
        ; HL und BC sind m.E. undefiniert, A = 0
        LD      H,(HL)
        LD      (BC),A
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        ; da fehlt außerdem ein Ende, oder?


Vielleicht funktioniert ja das abgebildete BASIC-Programm.

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
09.04.2023, 10:52 Uhr
ralle



Beim Mühlhäuser KC ist das ja etwas anders gelöst. Lautstärkeregelung via PIO. Aber es lohnt sich trotzdem, das anzuschauen.

Gab es in einer der Nachfolgenden FA Berichtigungen? Beim ROM-BASIC-Modul nicht. Das könnte ich zum Treffen mitbringen. Nebst dem .64er.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
09.04.2023, 15:07 Uhr
Lötspitze



Danke für die Hinweise. Bin noch am Aufbauen der Sachen. Da ich die CTC bei mir am Z1013 auf 20h laufen lassen muß, freue ich mich auch über den Quelltext. Vielleicht bekomme ich ihn angepaßt zum Laufen.

VG Matthias
--
___________________
...geboren, um zu löten.

Wer rennen soll, muß auch mal stolpern dürfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek