- 3D-Druck Einstieg und Tipps         
Seite 4 von 10 ErsteErste ... 23456 ... LetzteLetzte
Ergebnis 31 bis 40 von 91

Thema: Projekt für Robby RP5

  1. #31
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Anzeige

    E-Bike
    Hi JanPeter
    Na da bin ich aber gespannt! Kannst mal bei Gelegenheit j amal den I2C Assemblercode hier posten. Würde ich mir gern auch mal anschaun.

    Gruß Frank

  2. #32
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.11.2003
    Ort
    Schöneiche b. Berlin
    Alter
    69
    Beiträge
    398
    Hallo !
    Hier das Beispiel, das man die Systemroutinen für den Antrieb nicht benötigt!
    Code:
    '       EINFACHES BEISPIEL ZUR BENUTZUNG VON ANTRIEB OHNE SYS-Befehle
    
    ' ---------------------------------------------------------------------
    '                       FUNKTION DES PROGRAMMS
    '----------------------------------------------------------------------
    ' ACHTUNG:
    ' Der erste Schritt in der Initialisierung ihres Programms sollte immer die Zeile
    
    '                        REV_L=on:REV_R=on:SYS PLM_SLOW
    
    ' enthalten. Diese Zeile initialisiert die Ports für die Richtungsumschaltung
    ' des Antriebs und die PLM Frequenz.
    
    ' DER BETRIEB DER MOTOREN OHNE DIESE INITIALISIERUNG FÜHRT UNWEIGERLICH ZUR ZERSTÖRUNG
    ' DER ANTRIEBSELEKTRONIK !!
    '-----------------------------------------------------------------------------------
    
    
    ' Für dieses Beispiel sind folgende SYSTEMROUTINEN relevant:
    '
    ' POWER:
    ' gosub SUBSYS_PWR_ON  ;Schaltet die Subsysteme EIN/AUS
    ' gosub SUBSYS_PWR_OFF
    
    ' AUSGABEN:
    ' gosub LED1ON   ;zum Ein/Ausschalten der LED1 analog auch
    ' gosub LED1OFF  ;LED 2bis 4
    ' gosub LEDSOFF  ;schaltet alle LEDS aus
    '
    ' ACS:
    ' gosub NO_ACS_INT   ;Interruptbetrieb abgeschaltet
    ' SYS ACS_HI         ;ACS HI POWER (SEHBEREICH ca. 60cm)
    ' SYS ACS_LO         ;ACS LO POWER (SEHBEREICH ca. 30cm)
    ' SYS ACS_MAX        ;ACS MAX POWER(SEHBEREICH ca. 100cm)
    ' SYS COMNAV_STATUS  ;Abfrage des ACS
    '-------------------------------------------------------------------
    ' ANTRIEB Neu
    '
    ' GOSUB REVR           ;Kette rückwärts laufen lassen R/L
    ' GOSUB REVL
    
    ' GOSUB FWDR           ;Kette vorwärts laufen lassen R/L
    ' GOSUB FWDL
    
    ' GOSUB FWD	       ;beide Ketten vorwärts
    ' GOSUB REV            ;beide Ketten rückwärts
    
    ' GOSUB ROTR           ;Auf der Stelle nach R/L drehen
    ' GOSUB ROTL
    '----------------------------------------------------------------
    '--------------------------
    '------ I/O PORTS ---------
    '--------------------------
    '- INTERFACE LCD/EXTPORT --
    define sdio         port[1]
    define sclio        port[3]
    define strobe       port[4]
    '-- INTERFACE COM/NAV -----
    define DATALINE     port[1]
    define CLOCKLINE    port[2]
    '--------------------------
    '------ SENSORS ---------
    '--------------------------
    define LIGHT_L      ad[7]
    define LIGHT_R      ad[6]
    define SYS_VOLTS    ad[3]
    define CHRG_CURRENT ad[2]
    define SYS_CURRENT  ad[1]
    define MIC          ad[4]
    define TOUCH        ad[5]
    '---------------------------
    '------  DRIVE -------------
    '---------------------------
    define SPEED_L        da[1]
    define SPEED_R        da[2]
    define REV_L        port[6]
    define REV_R        port[5]
    '--------------------------
    '---- SYSTEM MEMORY -------
    '--------------------------
    '--- INTERFACE BUFFER ----
    define LBYTE         byte[1]
    define HBYTE         byte[2]
    define SUBCMD        byte[3]
    '---- OPERATION DATA ------
    define EXTPORT       byte[4]
    define LED1_F        bit[29]
    define LED2_F        bit[30]
    define LED3_F        bit[31]
    define LED4_F        bit[32]
    define SYSTEM_STATUS byte[5]
    define ACSL_F        bit[33]
    define ACSR_F        bit[34]
    define IR_F          bit[35]
    '--------------------------
    '----  USER MEMORY  -------
    '--------------------------
    define TIM           byte[6]
    define PGM           byte[7]
    '--- SYSTEMROUTINEN -----------
    define PLM_SLOW      &H01C4
    define SYSTEM        &H01C9
    define COMNAV        &H0154
    '- ERWEITERTE SYSTEM ROUTINEN -
    '-------------------------------------------------------------------
    define COMNAV_STATUS &H0125   'UPDATED ALLE FLAGS IM STATUS-REGISTER
    define ACS_LO        &H01E1   'ACS POWER LO
    define ACS_HI        &H01E9   '
    define ACS_MAX       &H01F1   '
    define SEND_TLM      &H014A   'SENDET TELEMETRIE (CH=HBYTE,DATEN=LBYTE)
    define SEND_SPEEDR   &H0134   'SENDET TLM KANAL 8,PLM RECHTS
    define SEND_SPEEDL   &H013A   'SENDET TLM KANAL 7,PLM LINKS
    define SEND_SYSSTAT  &H0144   'SENDET TLM KANAL 0,SYSTEM STATUS
                                  '(FLAGS für ACS,FWD/REV, ACS_LO/HI/MAX)
    
    '---------- INIT---------------
    gosub SUBSYS_PWR_ON
    beep 368,10,50
    '---- SYSTEM OPERATION MODE (NO INTERRUPT) ----
    gosub NO_ACS_INT:beep 368,10,0:SYS ACS_MAX
    '------------ ANTRIEB -------------------------
    REV_L=on:REV_R=on:SYS PLM_SLOW
    
    '--------------------------------------------
    '---         DEMO ANTRIEB                 ---
    '--------------------------------------------
    #loop
    pause 5:SYS COMNAV_STATUS
    '--------- LEDs ansteuern --------------------
    if ACSL_F=on then gosub LED4ON else gosub LED4OFF
    if ACSR_F=on then gosub LED1ON else gosub LED1OFF
    '--------- AUSWEICHMANÖVER EINLEITEN ---------
    if (ACSL_F and ACSR_F)=on then goto rotate
    if ACSL_F=on then goto move_right
    if ACSR_F=on then goto move_left
    'SYS FWD:SPEED_L=85:SPEED_R=85:goto loop
            gosub FWD:SPEED_L=85:SPEED_R=85:goto loop
    
    '-------- AUSWEICHEN NACH RECHTS -------------
    #move_right
    SPEED_R=70:SPEED_L=85:goto loop
    '-------- AUSWEICHEN NACH LINKS -------------
    #move_left
    SPEED_L=70:SPEED_R=85:goto loop
    '----------    ROTIEREN  --------------------
    #rotate
    SPEED_L=85:SPEED_R=85:gosub ROTR:goto loop
    '----------------------------------------------
    
    
    
    'IIIIIIIIII Neue ANTRIEBSROUTINEN IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
    ' Damit im Treiber Platz wird, kann auch mit altem Treiber p5driv.s19
    ' benutzt werden ,bringt aber dann nichts !-)
    
    #REVR                           'ANTRIEB RECHTS RÜCKWÄRTS
            REV_R=off        
            return
    #REVL                           'ANTRIEB LINKS RÜCKWÄRTS
            REV_L=off
            return        
    #FWDR                           'ANTRIEG RECHTS VORWÄRTS
            REV_R=on
            return
    #FWDL                           'ANTRIEB LINKS VORWÄRTS
            REV_L=on
            return
    #ROTR                           'RECHTS DREHEN
            gosub FWDL
            gosub REVR
            return
    #ROTL                           'LINKS DREHEN
            gosub FWDR
            gosub REVL
            return
    #REV                            'RÜCKWÄRTS
            gosub REVL
            gosub REVR
            return
    #FWD                            'VORWÄRTS
            gosub FWDL
            gosub FWDR
            return
    '-------------------------------------------------------------------
                                              
    'IIIIIIIIIII LED DRIVER IIIIIIIIIIIIIIIII
    #LED1ON
    LED1_F=on:goto EXTPORT_WRITE
    #LED1OFF
    LED1_F=off :goto EXTPORT_WRITE
    #LED2ON
    LED2_F=on:goto EXTPORT_WRITE
    #LED2OFF
    LED2_F=off:goto EXTPORT_WRITE
    #LED3ON
    LED3_F=on:goto EXTPORT_WRITE
    #LED3OFF
    LED3_F=off:goto EXTPORT_WRITE
    #LED4ON
    LED4_F=on:goto EXTPORT_WRITE
    #LED4OFF
    LED4_F=off:goto EXTPORT_WRITE
    #LEDSOFF
    EXTPORT=EXTPORT and &H0F:goto EXTPORT_WRITE
    #EXTPORT_WRITE
    SYS SYSTEM:pulse STROBE:RETURN
    
    'IIIIII SYSTEMROUTINEN COMM/NAV SYSTEM  IIIII
    
    #GET_IRDATA
    SUBCMD=1:sys COMNAV:return
    #SEND_IRDATA
    SUBCMD=0:sys COMNAV:return
    #RC5
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFC
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #RC5_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE and &HFE)or 2
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H01)and&HFD
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #REC80_INT
    SUBCMD=4:sys COMNAV:LBYTE= (HBYTE or &H03)
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    
    'IIIIII   SYSTEMROUTINEN SYSTEM  IIIIIIIIIIII
    #NO_ACS_INT
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE and &HFB
    HBYTE=00:SUBCMD=2:sys COMNAV:return
    #ACS_INT_200
    SUBCMD=4:sys COMNAV:LBYTE= HBYTE or &H04
    HBYTE=50:SUBCMD=2:sys COMNAV:return
    #SUBSYS_PWR_ON
    sdio=on:sclio=on:strobe=off:EXTPORT=(EXTPORT and &HFE)or 8
    sys SYSTEM:return
    #SUBSYS_PWR_OFF
    EXTPORT=(EXTPORT and &HF7)or 1:sys SYSTEM
    deact sdio:deact sclio:return
    #CLR_DISTANCE
    SUBCMD=3:sys COMNAV:return
    #L_DISTANCE
    SUBCMD=6:sys COMNAV:return
    #R_DISTANCE
    SUBCMD=7:sys COMNAV:return
    '---------COM/NAV GERÄTEREIBER -------------
    'syscode "p5driv.s19"
    MfG
    janpeter

  3. #33
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.11.2003
    Ort
    Schöneiche b. Berlin
    Alter
    69
    Beiträge
    398
    Hallo Frank !
    Hier mal ein kürzerer Treiber für I2C. ( Ist aber nicht von mir)
    Code:
    ;Ansteuerung eines PCF8574 über SDA und SCL
    ;Verwendung des vorhandenen I2C-Bus
    
           .org $101
    ;EEPROM vom Bus abmelden
            jsr $08BB    ;I2C_ReadLast
    ;Schreibzugriff auf PCF8574
            ldx $0A1     ;Adresse PCF8574 lesen
            jsr $083C    ;I2C_Start
            ldx $0A2     ;Daten lesen
            jsr $0846    ;I2C_Write
            jsr $08E5    ;I2C_Stop
    ;Lesezugriff auf PCF8574
            ldx $0A1     ;Adresse lesen
            incx         ;Lesebit setzen
            jsr $083C    ;I2C_Start
            jsr $086F    ;I2C_Read
            sta $0A2     ;Daten speichern
            jsr $08BB    ;I2C_ReadLast
    ;EEPROM wieder anmelden
            ldx #$0A0    ;Adresse 24C65, write
            jsr $083C    ;I2C_Start
            ldx $066     ;AdrCounter Hi
            jsr $0846    ;I2C_Write
            ldx $067     ;AdrCounter Lo
            jsr $0846    ;I2C_Write
            ldx #$0A1    ;Adresse 24C65, read
            jsr $083C    ;I2C_Start
            rts
    .end
    MfG
    janpeter

  4. #34
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1
    Hi
    Das Programm ist dem im Download-Bereich sehr ähnlich, nutzt nur eine Sytemroutine mehr! Muß man halt mal testen!

  5. #35
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.11.2003
    Ort
    Schöneiche b. Berlin
    Alter
    69
    Beiträge
    398
    Hallo Frank !
    Nein 2!
    I2C-Write
    und
    I2C-Start
    MfG
    janpeter

  6. #36
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.11.2003
    Ort
    Schöneiche b. Berlin
    Alter
    69
    Beiträge
    398
    Hallo Frank !
    Ich habe den neuen Treiber mit dieser I2C-Routine für Robbi fertig.
    Muß ich nur noch Testen, schätze mal am Wochenende kann ich mehr sagen.
    MfG
    janpeter

  7. #37
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    Hallo janpeter,
    könntest Du bitte Dein Dis-Assemblat irgendwie verfügbar machen?
    mfg jörg

  8. #38
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.11.2003
    Ort
    Schöneiche b. Berlin
    Alter
    69
    Beiträge
    398
    Hallo Jörg!
    Erst mal muß ich testen ob alles funktioniert!
    MfG
    janpeter

  9. #39
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    OK, und danke im Voraus.
    PS: wenn ich Dir dabei helfen kann: melde Dich (seit gestern abend habe ich auch so einen Robby - hat mich schon die erste Nacht gekostet, ist aber witzig!)

  10. #40
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.01.2004
    Ort
    München
    Alter
    75
    Beiträge
    214
    Jetzt war ich doch zu ungeduldig, und deshalb habe ich den P5DRIV auch disassembliert. Ich habe ihn im Thread "Frage an DIE HARD gibt es den..." beigefügt - vielleicht spart sich jemand unnötige Mühen.
    PS: ich bin mir nicht sicher, dass alles stimmt, sieht aber plausibel aus.

Seite 4 von 10 ErsteErste ... 23456 ... LetzteLetzte

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress