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 ;)
Druckbare Version
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 ;)
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
Elektor ?Zitat:
Der neue USB Progger Elektor AVR MKII
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.
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
Yo, das Modell kenn ich nicht.
Da kann ich dir leider nicht helfen.
Hallo,
ich habe den gleichen Fehler mit usb1287.dat bei der Bascom-DEMO 1.11.9.1.
Wie ist die Sache ausgegangen ?
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
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 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(8) 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(8) = 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:
----------------
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.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
...
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:
Hier wird der else-Zweig der if-Selektion ausgeführt, obwohl am Port nachweislich der Wert 129 anliegt.Code:config PORTB = input
inputport alias PINB
const buffer = 129
dim inputbuffer as byte
inputbuffer = inputport
if inputbuffer = buffer then
[...]
else
[...]
endif
Wenn ich das Programm minimal abändere:
... wird allerdings der else-Zweig ausgelassen, sondern die if-Bedingung als 'wahr' beurteilt.Code:config PORTB = input
inputport alias PINB
const buffer = 129
dim inputbuffer as byte
inputbuffer = inputport
if inputbuffer = 129 then
[...]
else
[...]
endif
Hat das vielleicht sonst jemand beobachten können?
Ich werde dann noch eine Mail an MCS richten.
Viele Grüße
ikarus_177
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