- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 18

Thema: Programm aus dem Jahr 2005 Compilieren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407
    Zitat Zitat von peterfido Beitrag anzeigen
    Das Programm lässt sich mit der 2.0.7.4 kompilieren. Ich musste nur ..., sowie
    Code:
    & B58#;
    gegen
    Code:
    :
    ersetzen.
    Da habe ich ja was zu knacken. " &58# " gegen " : " getauscht. Aber ich will gar nicht rätseln .
    Ich möchte einfach nur das das Programm läuft und das tut was sich der Programmierer dabei gedacht hat.


    Zitat Zitat von peterfido Beitrag anzeigen
    Out of SRAM Space kann darauf hindeuten, dass in den Optionen zu hohe Stackwerte eingetragen sind, welche dann genommen werden, wenn im Programmcode nichts angegeben ist.
    Das kann ich leider auch nicht lösen .

    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Bernd_Stein Beitrag anzeigen
    Das kann ich leider auch nicht lösen .
    Du musst entweder die Werte für Stacks und Frame in den Bascom-Einstellungen anpassen, oder direkt eingefügt im Code.
    Dass bei dem kleine Controller der SRam noch früher zur Neige geht, liegt am Pfusch die Overlays auf 'ne feste Adresse zu setzen, damit wird der Bereich von &h66 - &h74 verschwendet.
    Kann nach diesem Schema behoben werden:
    Code:
    Dim Icadr As Word
    Dim Icadrlo As Byte At Icadr Overlay
    Dim Icadrhi As Byte At Icadr + 1 Overlay
    'usw.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407
    Zitat Zitat von Bernd_Stein Beitrag anzeigen
    Das kann ich leider auch nicht lösen .
    Danke auch Dir für Deine Hilfe.

    Zitat Zitat von MagicWSmoke Beitrag anzeigen
    Du musst entweder die Werte für Stacks und Frame in den Bascom-Einstellungen anpassen, oder direkt eingefügt im Code.
    Dass bei dem kleine Controller der SRam noch früher zur Neige geht, liegt am Pfusch die Overlays auf 'ne feste Adresse zu setzen, damit wird der Bereich von &h66 - &h74 verschwendet.
    Das alles ist mir zur Zeit etwas zu hoch. Beschäftige mich schon mehrere Tage mit diesem MiniLogger.
    Ich bin schon froh soweit gekommen zu sein und auch, das überhaupt jemand solch ein Projekt mit der Hilfe anderer erstellt hat.

    Zitat Zitat von MagicWSmoke Beitrag anzeigen
    Kann nach diesem Schema behoben werden:
    Code:
    Dim Icadr As Word
    Dim Icadrlo As Byte At Icadr Overlay
    Dim Icadrhi As Byte At Icadr + 1 Overlay
    'usw.
    Habe jetzt soviel Zeit in diesen MiniLogger gesteckt, das ich in den kommenden Tagen mich nur noch spärlich damit befassen kann. Also nicht wundern, wenn Ihr in den nächsten Tagen nichts von mir hört.

    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Ohne mir jetzt Gedanken über Sinn oder Unsinn des Codes gemacht zu haben, so kompiliert das und entspricht funktional dem vorgegeben Code.
    Die absolute Adressvergabe wird nirgends anders als im Overlay genutzt und da lässt man besser den Compiler die Variablen organisieren.
    Code:
    $regfile = "ATtiny26.dat"                                   'Wir benutzen einen Tiny26
    $crystal = 1000000                                          '1 MHz, Damit auch die Software davon weiss
    $hwstack = 32
    $swstack = 24
    $framesize = 24
    
    $noramclear
    
    Const Eeprom_adress_w = &HA0                                'Basisadresse des verwendeten EEPROMs 24C64A = &HA0 / 24C256 = &HA0
    Const Eeprom_adress_r = Eeprom_adress_w + 1                 'Nicht aendern!
    
    Dim Eeprom_size As Word                                     '
    Dim Last_icadr As Word                                      '
    Dim Measured_bytes As Byte                                  '
    Dim Bversion As Byte                                        '
    Dim Icadr As Word
    Dim Icadrlo As Byte At Icadr Overlay
    Dim Icadrhi As Byte At Icadr + 1 Overlay
    Dim Collected As Word                                       'Anzahl gespeicherter Datensätze im akt. Block
    Dim Collectedlo As Word At Collected Overlay                '
    Dim Collectedhi As Word At Collected + 1 Overlay            '
    Dim Wtemp0 As Word
    Dim Wtemp0lo As Byte At Wtemp0 Overlay                      '
    Dim Wtemp0hi As Byte At Wtemp0 + 1 Overlay                  '
    Dim Wtemp1 As Word                                          '16Bit temporär
    Dim Btemp0 As Byte                                          '
    Dim Btemp1 As Byte                                          '
    Dim Stemp As String * 16                                    'String temporär
    
    'Config & Init ----------------------------------------------
    Ddra = &B00000000                                           'Ddra Input
    Porta = &B11111111                                          'pull-up
    
    Ddrb = &B01100000                                           'Ddrb.0 Input SDA (Mini-Datenlogger)
    'DDrb.1 Input
    'DDrb.2 Input SCL (Mini-Datenlogger)
    'DDrb.3 Input Button
    'DDrb.4 Input Seriell
    'DDrb.5 Output Seriell
    'DDrb.6 Output Reset (Mini-Datenlogger)
    'DDrb.7 Input (Reset)
    
    Portb = &B01001000                                          'Portb.0 SDA (Mini-Datenlogger)
    'Portb.1
    'Portb.2 SCL (Mini-Datenlogger)
    'Portb.3 pull-up für Button
    'Portb.4 seriell
    'Portb.5 seriell
    'Portb.6 Reset (Mini-Datenlogger)
    'Portb.7
    
    Config Sda = Portb.0                                        'Ports fuer die I2C-Schnittstelle
    Config Scl = Portb.2
    'I2cinit 'wird mit DDRB= und PORTB= miterledigt
    'Reset Portb.0 (Sda)
    'Reset Portb.2 (Scl)
    'Reset Ddrb.0 (Sda)
    'Reset DDrb.2 (Scl)
    
    Open "COMB.5:9600,8,N,1,INVERTED" For Output As #1          'Port für serielle Ausgabe
    'Set Ddrb.5
    'Reset Portb.5
    
    'Program ----------------------------------------------------
    _read_i2c:                                                  '                                              '
    I2cstop                                                     '
    Waitms 500                                                  '
    Icadr = 0                                                   '
    Gosub Read_eeprom                                           '
    Measured_bytes = Wtemp0lo                                   '
    Bversion = Wtemp0hi                                         '
    Gosub Read_eeprom                                           '
    Eeprom_size = Wtemp0                                        '
    
    Print #1 , "no connect"
    If Bversion = 0 Then Goto _read_i2c
    If Bversion = 255 Then Goto _read_i2c
    If Measured_bytes = 0 Then Goto _read_i2c
    If Measured_bytes = 255 Then Goto _read_i2c
    If Eeprom_size = 0 Then Goto _read_i2c
    
    Shift Eeprom_size , Left , 8                                '
    Eeprom_size = Eeprom_size + 255                             '
    Print #1 , "MiniLogger;"
    Print #1 , ";" ; Bversion ; ";" ; Measured_bytes ; ";" ; Eeprom_size ; ";"
    Shift Measured_bytes , Right , 1                            'lesen erfolgt word-weise
    
    Last_icadr = Eeprom_size - 4                                '
    Last_icadr = Last_icadr - Measured_bytes                    '
    
    Gosub Read_eeprom                                           '
    
    Do                                                          'Beginn Hauptschleife
    Gosub Read_eeprom                                           '
    Print #1 , ";"
    Print #1 , Wtemp0 ; ";"
    Collected = Wtemp0                                          '
    For Wtemp1 = 1 To Collected                                 'Datensätze lesen
    If Icadr > Last_icadr Then
    Collected = 0
    Exit For                                                    '
    End If
    For Btemp1 = 1 To Measured_bytes
    Gosub Read_eeprom
    Print #1 , ";" ; Wtemp0hi ; ";" ; Wtemp0lo ;
    Next Btemp1
    Print #1 , ";"
    Next Wtemp1
    Loop Until Collected = 0                                    'Ende Hauptschleife
    
    Do                                                          '
    Loop                                                        '
    
    'I2C-Routinen
    '-----------------------------------
    Read_eeprom:                                                '
    I2cstart                                                    'generate start
    I2cwbyte Eeprom_adress_w                                    'slave adsress
    I2cwbyte Icadrhi                                            'address of EEPROM
    I2cwbyte Icadrlo                                            'address of EEPROM
    I2cstart                                                    'repeated start
    I2cwbyte Eeprom_adress_r                                    'slave address (read)
    I2crbyte Wtemp0hi , Ack                                     'read byte
    I2crbyte Wtemp0lo , Nack                                    'read byte
    I2cstop                                                     'generate stop
    Incr Icadr
    Incr Icadr
    Return

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407

    Hoffe nun endlich alles zu haben um den MiniLogger mit LogView nutzen zu können

    Zitat Zitat von MagicWSmoke Beitrag anzeigen
    Ohne mir jetzt Gedanken über Sinn oder Unsinn des Codes gemacht zu haben, so kompiliert das und entspricht funktional dem vorgegeben Code.
    Die absolute Adressvergabe wird nirgends anders als im Overlay genutzt und da lässt man besser den Compiler die Variablen organisieren.
    Sehr vielen Dank.
    Konnte das Programm wunderbar compilieren. Die .Hex ist zwar mit 4KB angegeben, aber das dürfte wohl an Windoof liegen.
    Über alles weitere werde ich hoffentlich dem Nächst berichten können.

    Für heute over and out.

    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Das .hex File ist noch ASCII codiert. Das .hex File ist etwas mehr als 3 mal so lang wie der benötigte Platz im µC. Das liegt nicht an Windows, sondern File Format (von Intel).

  7. #7
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    54
    Beiträge
    407

    Es ist zum Verzweifeln

    Zitat Zitat von Besserwessi Beitrag anzeigen
    Das .hex File ist noch ASCII codiert. Das .hex File ist etwas mehr als 3 mal so lang wie der benötigte Platz im µC. Das liegt nicht an Windows, sondern File Format (von Intel).
    Jau, den ATtiny26 konnte ich schon mal brennen. Der Rest ist glaube ich hier " ? besser ? " aufgehoben.

    http://www.logview.info/vBulletin/sh...8908#post18908

    Bernd_Stein
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Bernd_Stein Beitrag anzeigen
    Der Rest ist glaube ich hier " ? besser ? " aufgehoben.
    Ja wenn Du meinst...
    Ich bin im Roboternetz Mitglied und werd's nicht im Logview-Forum werden. Dann mal viel Erfolg noch.

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 04.02.2012, 14:09
  2. Problem beim Compilieren oder Fehler im Programm
    Von holgie72 im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 06.02.2010, 14:48
  3. Antworten: 14
    Letzter Beitrag: 04.03.2009, 15:57
  4. Robo-Projekt / 1 Jahr / einige Fragen
    Von Nygil im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 12
    Letzter Beitrag: 07.09.2004, 22:36
  5. Mehrere hunderttausend Staubsaugerroboter in einem Jahr
    Von Frank im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 16
    Letzter Beitrag: 30.04.2004, 11:02

Berechtigungen

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

LiFePO4 Speicher Test