SD2IEC LCD-Ansteuerung


  • DerSchatten
  • 1372 Aufrufe 25 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ich habe mich in der Sache nun etwas weiter gewagt und folgende Routinen aus dem 1541Control-Code (main.c) übernommen:

    Quellcode

    1. static const prog_char dosnames[] = {
    2. //1234567890123456
    3. "CBM-DOS RAM"
    4. "Jiffy-DOS RAM"
    5. "Dolphin-DOS RAM"
    6. "64'er-DOS V3 RAM"
    7. "SpeedDOS RAM"
    8. "S-JiffyDOS "
    9. "CBM-DOS "
    10. "Jiffy-DOS "
    11. "RAM-DOS RAM"
    12. };
    Alles anzeigen


    Quellcode

    1. static void reset_floppy() {
    2. DDRB |= _BV(PB3);
    3. _delay_ms(250);
    4. DDRB &= ~_BV(PB3);
    5. }


    Quellcode

    1. static void set_dos(const uint8_t num) {
    2. PORTC = (PORTC & 0xf0) | (num & 0x0f);
    3. reset_floppy();
    4. }


    Ich denke das sind schon mal die wichtigsten Funktionen.
    Damit der RESET funktioniert muß die RESET-Leitung des C64/Floppy auf PIN PB3 (FRESET) gelegt werden wenn ich das so richtig verstanden habe.

    Mit der Ansteuerung des ProtC kann ich noch nicht so viel anfangen. Was genau geschieht hier?
    Beim kombilieren bekomme ich den Fehler: display.c:140: error: implicit declaration of function '_delay_ms'

    Ich weiß das da noch einige Dinge fehlen, wollte mich aber mal schrittweise vorranarbeiten.

    -= Neu in meiner Sammlung / Modding =-

    Nichts hält länger als ein Provisorium
  • Danke für den Hinweis!

    Genaugenommen war es: #include <util/delay.h>

    Ich habe jetzt folgende Funktion im Display-AVR in der main.c inkludiert:

    Quellcode

    1. static void reset_floppy(void) {
    2. DDRB |= _BV(PB3);
    3. _delay_ms(250);
    4. DDRB &= ~_BV(PB3);
    5. }


    Am SD2IEC-AVR in der display.c diese Funktion:

    Quellcode

    1. static void menu_chkern(void) {
    2. reset_floppy();
    3. }


    Wie mach ich dem ganzen jetzt klar das die der Resetaufruf und die Funktion in zwei verschiedenen AVR liegen?
    Ich dachte vielleicht es reicht die Funktion statisch zu definieren.

    Bekomme beim kompilieren folgenden Fehler:

    Quellcode

    1. cc1.exe: warnings being treated as errors
    2. display.c: In function 'menu_chkern':
    3. display.c:141: error: implicit declaration of function 'reset_floppy'
    4. make: *** [obj-m644p-sw2/display.o] Error 1


    und am Display-AVR:

    Quellcode

    1. cc1.exe: warnings being treated as errors
    2. main.c:232: error: 'reset_floppy' defined but not used
    3. make: *** [obj-m644/main.o] Error 1

    -= Neu in meiner Sammlung / Modding =-

    Nichts hält länger als ein Provisorium
  • DerSchatten schrieb:

    Wie mach ich dem ganzen jetzt klar das die der Resetaufruf und die Funktion in zwei verschiedenen AVR liegen?
    Ich dachte vielleicht es reicht die Funktion statisch zu definieren.


    Ich kenne den betroffenen Code im SD2IEC nicht. Daher weiss ich nicht wie weit das bereits unterstützt wird.


    Aber es muss definitiv in beiden Controllern unterstützt werden. Die beiden Controller kommunizieren über I2C und eine Rückmeldeleitung (wenn das Display aktiv was braucht).

    + Der Display Controller muss signalisieren dass er einen Reset auslösen will.

    + Der SD2IEC Controller muss die Anfrage lesen und durchführen.
    Letztlich ist alles nur Illusion
    Es gibt hier nichts von Bedeutung