Anzeige:
Ergebnis 1 bis 9 von 9

Thema: C Befehler portieren

  1. #1
    Adlukas
    Gast

    C Befehler portieren

    Hallo, ich weiß nicht ob das so richtig in dieses Forum reinpasst, aber vieleicht kann mir jmd. helfen

    Ich hab eine kleine Funktion die in C gecodet ist und ich würde sie gerne in Basic portieren. Schaut einfach mal:
    Code:
    void lcgout(int where, int value)
    {
       outportb(PORTB,LCGCMD|LCGWR|LCGDIS);
       outportb(PORTB,LCGCMD|LCGWR|LCGEN);
       outportb(PORTA,where);
       delay(EDELY);
       outportb(PORTB,LCGCMD|LCGWR|LCGDIS);
      
    }
    Die großgeschriebenen Konstanten habe ich bereits portiert, das ist ja auch einfach
    Aber ich finde keinen passenden Befehl für outportb in Basic. Ah ja, und was bedeuten die | in c? UND? wie könnte ich das in Basic machen?
    Ich hoffe mir kann jmd. helfen - Danke!

  2. #2
    Registrierter Benutzer
    Registriert seit
    19.07.2004
    Beiträge
    50
    Bist du sicher, dass du das in Basic machen möchtest? _Wirklich_ sicher?

    Was die "|" angeht: Das ist ein "oder", ist in BASIC "XOR" soweit ich weiß (nicht OR, das wäre ||).

    Die Funktionen kenne ich alle nicht, du könntest vllt. mal posten, welche Bibliotheken du alle eingebunden hast. Hab ich eigentlich schon gefragt, ob du dir sicher bist, dass du das in Basic programmieren willst?

  3. #3
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Welches BASIC meinst du? Da gibt es verschiedene

    "XOR" ist übrigens falsch. "|" ist das binäre OR, ich weiss leider nicht mehr, wie das in BASIC geschrieben wurde (vielleicht "^"?)

    In QBASIC gab es glaube ich den OUT befehl, der etwas an einen (IDE-)Port schrieb. (outportb(a,b) => OUT a,b)

    BTW: Du weisst, dass dies hier ein UNIX-Forum ist?

  4. #4
    Adlukas
    Gast
    Hym, ja ich wollte das theoretisch in basic machen, wieso denn nicht ? ist das sooooo kompliziert?
    Ich weiß das das ein unix forum ist, aber auch ein coderforum :] und weil mir niemand wo anders helfen konnte hab ich mir mal gedacht, vieleicht habt ihr mehr drauf :]
    Du sagst also mit OUT? hab ich mir auch überlegt, aber wie mach ich das in basic mit dem | ...
    Wenn das jetzt der OUT befehlt währe, dann konnte ich das do einfach so machen, oder?:
    Code:
    define function lcgout(where as byte)
    
    function lcgout(where)
    	OUT PORTB,LCGMD^LCGWR^LCGDIS
    	OUT PORTB,LCGCMD^LCGWR^LCGEN
      	OUT PORTA,where
       	delay(EDELY)
       	OUT PORTB,LCGCMD^LCGWR^LCGDIS
    end function

  5. #5
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Zitat Zitat von Joghurt
    BTW: Du weisst, dass dies hier ein UNIX-Forum ist?
    Wäre mir neu dass es keine BASIC Interpreter/Compiler für Unix gibt.

    Am besten du kontaktierst umgehend die Entwickler von xbasic.org, die sind doch tatsächlich der Meinung es würde auch unter Linux funktionieren.

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  6. #6
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    @anda
    Volle Punktzahl *rotfl*

    @Adlukas
    Das sieht mir doch sehr nach Schulaufgabe aus, nüsch wahr?

    Denn hier sind ja wohl ein Widerspruch:
    Zitat Zitat von Adlukas
    Ich hab eine kleine Funktion die in C gecodet ist und ich würde sie gerne in Basic portieren.
    Zitat Zitat von Adlukas
    Ah ja, und was bedeuten die | in c?
    Denn entweder hast Du es geschrieben und weißt somit was es bedeuted oder eben nicht. Aber dann sehr ehrlich.

    Pingu

  7. #7
    Adlukas
    Gast
    lool, sorry das ich lache aber es ist wirklich nicht für die schule :] sowas würden wir im leben nie machen
    und, ich habe das nicht selbst gecodet, sonder ich habe die lib im netz gefunden, leider ist sie - wie ihr seht in C geschrieben.
    Die library ist zum ansteuern eines µC, der widerum ein DotMatrix Display steurt. Da ich mich nun in Basic eingearbeitet habe und so gut wie mein komplettes Programm in Basic ist, würde ich auch gerne diese Lib in Basic haben um die Befehle implementieren zu können.
    Währe echt super von euch wenn ihr mir helfen könntet. Die Tage werde ich einpaar der Lösung ausprobieren aber vorher muss ich mir meine passende Schaltung dazu aufbauen/löten :]
    Im Endeffekt ist das ganze für die Schule - Facharbeit. Aber das ist nur 0.01% der eigendlichen Arbeit :] So ein schöner Nebeneffekt, ein Display :]
    big thx nochmal!

    EDIT: ah ja, wo ist denn da ein Wiederspruch? Da steht "ich habe hier eine Funktion die in C gecoddet _IST_" und nicht, dass ich sie selbst gecoddet habe :] aber ist egal :P

  8. #8
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Zitat Zitat von anda_skoa
    Wäre mir neu dass es keine BASIC Interpreter/Compiler für Unix gibt.
    IIRC ist outportb ein Befehl von Borland C, also DOS/Windows. Daraus schloss ich, dass auch das Programm eher unter Windows laufen soll; unter Unix müsste es ja eh als root laufen, wenn es auf Ports zugreift.

  9. #9
    Registrierter Benutzer Avatar von r00t043
    Registriert seit
    11.01.2004
    Beiträge
    38
    @Adlukas
    Was ist das den fuer Mikrocontroller? Denn fuer jeden uC gibt es einen anderen Kompiler der unterschiedliche Befehlen dir zur verfuegung stellt, z.B. saehe das fuer einen AVR so aus:
    statt
    Code:
    outportb(PORTB,LCGCMD|LCGWR|LCGDIS);
    Code:
    PORTB = LCGMD | LCGWR | LCGDIS;
    bzw. frueher:
    Code:
    outp( PORTB, LCGCMD|LCGWR|LCGDIS );
    Am besten mal die Dokumentation fuer dein BASIC suchen, die Ausgabe duerfte relativ am Amfang erklaert sein ( erster Versuch mit LED an irgendeinem Pin zum leuchten bringen ). Koennte auch sein das du bei deinem BASIC-Kompiler schon die lib fuer dein LCD dabei hast und du dich garnicht mit den Bits rumschlagen musst.

    @Joguhrt
    Ich glaube nicht das auf dem uC irgendeine Art von Betriebssystem laeuft ( es sei den Adlukas hat ne CControl am Gange )

Lesezeichen

Berechtigungen

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