- LiFePO4 Speicher Test         
Seite 6 von 10 ErsteErste ... 45678 ... LetzteLetzte
Ergebnis 51 bis 60 von 98

Thema: Bascom Bug melden

  1. #51
    Neuer Benutzer Öfters hier
    Registriert seit
    30.08.2008
    Beiträge
    6
    Anzeige

    E-Bike
    Aber es merkt sich die Einstellung nicht. Bei jedem neuöffnen erstmal das Fenster über 2 Monitore.

    Ich sag ja, ist nicht schlimm!! Aber ein Bug

  2. #52
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    52
    Beiträge
    169
    Bascom IDE 1.11.9.3(.001)

    Der neue USB Progger Elektor AVR MKII kann genau 1x proggen, danach wird die ISP Geschwindigkeit auf 8MHz gesetzt und muss mit (bei mir z.B.) WINAVR wieder runter gesetzt werden. Ich habe keine Möglichkeit gefunden diese in Bascom selbst zu ändern.

    Werd es gleich an MCS melden.

    Gruß
    Jens

  3. #53
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Der neue USB Progger Elektor AVR MKII
    Elektor ?
    Neu ?
    Hab ich was verpasst oder nennt Elektor den nur zufällig wie den von Atmel ? (Ich lese die Elektor seit Jahren nicht mehr)



    Was dein Problem betrifft :

    Ich hab selber den Atmel MKII (Gekauft als er rauskam.Weiß nicht mehr wann das war) aber meiner macht kein zicken.
    (AVR-Studio aktuell,Bascom aktuell.Unter W2K und XP SP2)

    Vieleicht hast du nen Montagsgerät erwischt.
    Gruß
    Ratber

  4. #54
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    52
    Beiträge
    169
    Hi,

    nene, seit der 1.11.9.3 wird der USBprog 3.0 von Embedded Projects ("Hersteller") unterstützt. Dieser wird nicht nur vom Erfinder sondern auch jetzt wohl von der Elektor vertrieben (siehe hier: KLICK ) Sorry wenn ich mich falsch ausgedrückt habe

    Das Teil arbeitet einwandfrei, wenn man das Programm mit Bascom compiliert und mit WinAVR hochlädt. Ich will aber die neue Unterstützung von Bascom jetzt nutzen, sodass ich nicht den Umweg über WinAVR gehen muss.

    Gruß
    Jens

  5. #55
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Yo, das Modell kenn ich nicht.
    Da kann ich dir leider nicht helfen.
    Gruß
    Ratber

  6. #56
    Hallo,

    ich habe den gleichen Fehler mit USB1287.dat bei der Bascom-DEMO 1.11.9.1.

    Wie ist die Sache ausgegangen ?

  7. #57
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    52
    Beiträge
    169
    Noch gar nicht, MCS wollte eine Möglichkeit inplementieren die ISP Geschwindigkeit manuell einstellen zu können.

    Ich hab unter Vista32 nur Probleme damit, ich nehm die "altmodische" Variante über WinAVR

    Gruß
    Jens

  8. #58
    Neuer Benutzer Öfters hier
    Registriert seit
    06.01.2009
    Ort
    NS
    Beiträge
    7
    Hab noch so ein paar kleine Bugs die mich schon öfter geärgert haben. Die anderen Sachen die nicht ging sind schon in den neuen 1.11.9.X version schon weg.

    Der erste wurde hier schon mal gepostet und ist immer noch in der 1.11.9.3 vorhanden.

    Dim Cnt1 as Byte
    Dim Testvar as Word

    Testvar = &B1100100111100011 'Beliebig definieren
    Print Bin(Testvar) 'Druckt: 1100100111100011

    Cnt1 = 0 'Druckt: 1100100111100011
    While 16 > Cnt1
    Print Testvar.cnt1;
    Incr Cnt1
    Wend
    Print

    Print Testvar.0; 'Druckt: 1110010011100100
    Print Testvar.1; 'Statt Bit 8 druckt es Bit 0,
    Print Testvar.2; 'Statt Bit 9 druckt es Bit 1, usw
    Print Testvar.3; 'Statt Bit 16 käme wieder Bit 0
    Print Testvar.4;
    Print Testvar.5;
    Print Testvar.6;
    Print Testvar.7;
    Print Testvar.8;
    Print Testvar.9;
    Print Testvar.10;
    Print Testvar.11;
    Print Testvar.12;
    Print Testvar.13;
    Print Testvar.14;
    Print Testvar.15;
    -----------------------------------------------------------------------------------

    Hatte noch ein Problem mit Konstanten

    Const xy = "Hello " 'Normaler const
    Const xz = xy 'Diese Zuweisung geht nicht
    Const yz = xy + "Welt!" 'Diese Wiederrum doch
    Const az = xy + "" 'Diese geht auch


    Hatte das bei so ein ähnlichen Fall:

    Const Version_short = "Version:1.0"

    #If Beta = 1
    Const Version_long = Version_short + "Beta"
    #endif
    #If Beta = 0
    Const Version_long = Version_short
    #endif

    Print Version_long
    ------------------------------------------------------------------------------
    Und ein weiteren Bug den ich gefunden hatte war auch bei Arrays

    Ich wollte in ein Bytearray ein Wert speichern der ein Bitwert speichert.

    Dim Arraymultiausgang( as Byte 'Mehrere Ausgänge gespeichert
    Dim Tmpausgang as Byte
    Dim Ausgangaktiv as Byte
    Dim Ausgangbit as Byte

    Arraymultiausgang(1) = 2
    Arraymultiausgang(2) = 7
    Arraymultiausgang(3) = 1
    Arraymultiausgang(4) = 3
    Arraymultiausgang(5) = 6
    Arraymultiausgang(6) = 5
    Arraymultiausgang(7) = 4
    Arraymultiausgang( = 0
    Tmpausgang.Arraymultiausgang(1) = 1 'Dieses ging nicht
    'Fehler Tmpausgang ist kein Array

    Ausgangbit = 2
    Tmpausgang.ausgangbit = 1 'Selber Befehl
    Tmpausgang.2 = 1 'Selber Befehl


    Diese Probleme hatte ich mit Atmega16, Atmega32 und Atmega644 mit der Bascom Version 1.11.8.9 - 1.11.9.3.
    Diese Beispielprogramme sind sehr vereinfacht worden um die Problematik zu erläutern und nicht die anwendungsbeispiel zu erklären wo ich solche Probleme bekommen habe.

    Ein weiteren Fehler den ich jetzt nicht Beweisen kann, aber der mich schon genug geärgert hat ist und den ich mittlerweile umgehen kann ist folgender:

    Wenn man eine Hardware UART und eine Software UART benutzt, und man auf den Flag Ucsr0a.txc0 = 1 wartet (Wenn der Hardware UART fertig ist mit senden und der Buffer leer sein 'SOLL'). Dummerweise hat der Inkey(#2) Befehl wohl ab und zu diesen Flag auch gesetzt oder eine ähnliche Handlung vorgenommen, da auf einmal angeblich das Senden fertig war. Dieser Fehler kam aber nur dann vor wenn auch wirklich etwas an #2 eingelesen wurde, sonst hat alles funktioniert.
    Mit der Prüfung _rs_bufcountw0 = 0 und eine Warteschleife von 1ms habe ich diesen Bug umgangen (Falls der Ucsr0a.txc0 gesetzt wird beim senden vom Letzten Byte musste ich die 1ms warten). Das Programm aktiviert andere MCs der reihe nach und schickt diesen einzeln Befehle, wenn der Befehl raus ist soll es zum nächsten wechseln, das Problem war immer das es vor der Beendung des Befehls schon umgeschaltet hatte, und das ist immer nur dann passiert wenn etwas auf dem Software UART eingelesen wurde, in Beispiel #2. Sobald der Software UART entfernt wurde oder nicht benutzt wurde Funktioniert alles einwandfrei. Naja ich hoffe es lässt sich so ein Problem mit den Software UARTs beheben und das dann die Software Uarts wieder normal benutzt werden können.



    Gekürzter Codebeispiel:
    ----------------
    Code:
    $regfile = "m644def.dat"                                    ' specify the used micro
    '$crystal = 14745600                                         ' used crystal frequency
    $crystal = 18432000                                         ' used crystal frequency
    $baud = 9600                                                ' use baud rate
    
    $hwstack = 64                                               ' default use 32 for the hardware stack
    $swstack = 20                                               ' default use 10 for the SW stack
    $framesize = 80                                             ' default use 40 for the frame space
    
    Config Serialout = Buffered , Size = 128                    ' Speichert 128 Bytes im Seriellen Buffer
    
    Open "COMA.7:9600,8,n,1" For Input As #2                    'TR_RxD (Transponderleser)  Pin PortA.7
    
    ...
    
       If Ucsr0a.txc0 = 1 Then             'Hier springt das Programm auch bei Software Uarts rein.
    Readcheck:
          If _rs_bufcountw0 = 0 Then    'Prüft Zusätzlich ob Hardware UART wirklich leer ist oder ob Software UART wieder Flag gesetzt hat.
             If Readingtran = 0 Then
                Readtranok = 0
                If Sendreaddata <> "" Then
                   Errorcnt = 0
                   Gosub Sendread
                Else
                   If 2 > Progstatus Or Progstatus > 13 And Hudset.hdtrans = 1 And Tr_voll = 0 Then Readtranok = 1
                End If
             End If
          Else
             Ucsr0a.txc0 = 1
          End If
    ...
    
       If Readtranok = 1 Then
          C_sw = Inkey(#2)
          If C_sw > 0 Then
    ...
    Ich hoffe ich habe euch wieder mal interessante Sachen zum Suchen gegeben wie beim letzten mal ^^. Diese Fehler sind zwar schon einmal geschickt worden aber entweder ist die Mail nicht angekommen oder wurde nicht gelesen, ich hatte darauf keine Antwort bekommen und die Fehler sind ja noch immer drin.

  9. #59
    Erfahrener Benutzer Roboter Experte Avatar von ikarus_177
    Registriert seit
    31.12.2007
    Ort
    Grein
    Alter
    31
    Beiträge
    601
    Hi,

    ich meine, auch einen Bug in der neuesten Vollversion (1.11.9.3) gefunden zu haben.

    Das Problem tritt beim Einlesen und Vergleichen des Wertes eines kompletten Ports auf (8 Bit).

    Wenn ich habe:
    Code:
    config PORTB = input
    inputport alias PINB
    
    const buffer = 129
    dim inputbuffer as byte
    
    inputbuffer = inputport
    if inputbuffer = buffer then
        [...]
    else
        [...]
    endif
    Hier wird der else-Zweig der if-Selektion ausgeführt, obwohl am Port nachweislich der Wert 129 anliegt.

    Wenn ich das Programm minimal abändere:
    Code:
    config PORTB = input
    inputport alias PINB
    
    const buffer = 129
    dim inputbuffer as byte
    
    inputbuffer = inputport
    if inputbuffer = 129 then
        [...]
    else
        [...]
    endif
    ... wird allerdings der else-Zweig ausgelassen, sondern die if-Bedingung als 'wahr' beurteilt.

    Hat das vielleicht sonst jemand beobachten können?
    Ich werde dann noch eine Mail an MCS richten.

    Viele Grüße
    ikarus_177

  10. #60
    Neuer Benutzer Öfters hier
    Registriert seit
    06.01.2009
    Ort
    NS
    Beiträge
    7
    Ich habe es mal getestet mit einem ATMega644 und Bascom 1.11.9.3 und hatte folgende Ergebnisse:

    das 1.
    ! = 129 (mit =Const)
    ? <> 129 (mit =Const)
    das 2.
    ! = 129 (mit =129)
    ? <> 129 (mit =129)



    Mit interne Pullups:
    11110011?? <--Hierfür habe ich keine erklärung das beim ersten auslesen nicht &HFF kommt
    11111111??
    10000001!!
    10000001!!

    Code:
    Config Portb = Input
    Inputport Alias Pinb
    Portb = &B11111111
    
    const buffer = 129
    dim inputbuffer as byte
    
    Inputbuffer = Inputport
    Print Bin(inputbuffer);
    if inputbuffer = buffer then
        Print "!";
    else
        Print "?";
    endif
    If Inputbuffer = 129 Then
        Print "!"
    else
        Print "?"
    endif

    Ohne interne Pullups:
    11100011?? <-- Undefinierter zustand
    10100000?? <-- Undefinierter zustand
    11110011?? <-- Undefinierter zustand
    10000001!! <-- Alle auf Ground oder 5V
    10000001!! <-- Alle auf Ground oder 5V


    Code:
    Config Portb = Input
    Inputport Alias Pinb
    Portb = &B00000000
    
    const buffer = 129
    dim inputbuffer as byte
    
    Inputbuffer = Inputport
    Print Bin(inputbuffer);
    if inputbuffer = buffer then
        Print "!";
    else
        Print "?";
    endif
    If Inputbuffer = 129 Then
        Print "!"
    else
        Print "?"
    endif

    versuch es mal mit den Pullups oder so, vielleicht hilft das? und lass dir auch den Wert ausgeben

Seite 6 von 10 ErsteErste ... 45678 ... LetzteLetzte

Berechtigungen

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

12V Akku bauen