Hallo zusammen... Ich habe mir eine grafische Benutzeroberfläche in VisualBasic.net erstellt welche mir je nach eingestellten Comboboxen und Textfeldern eine EEP-Datei fürs avrdude oder Ponyprog erstellen soll. Genau beim letzten Teil brauche ich aber Hilfe, da ich keine Ahnung habe wie ich so was bewerkstelligen könnte. Sprich die Felder und Boxen sind alle fertig. Jetzt geht es um den "Speichern"-Befehl. Hat da einer zufällig nen Tipp und ne Codezeile parat, wie ich die Daten in einem kompatiblen Format ausgeben kann?
einfach die Daten erst mal in ein bytearray ablegen, wie sie später im EEprom stehen sollen. Daraus dann einfach die eep Datei erzeugen. Das ist ja nur eine Intel-Hex Datei. https://de.wikipedia.org/wiki/Intel_HEX
Ich benötige leider ein paar Befehle oder gar ein Beispiel als Anhaltspunkt anhand dessen ich mich einlesen kann. So weit bin ich leider noch nicht mit VS... Danke schonmal, Frank
Frank schrieb: > Ich benötige leider ein paar Befehle oder gar ein Beispiel als > Anhaltspunkt anhand dessen ich mich einlesen kann. So weit bin ich > leider noch nicht mit VS... > > Danke schonmal, Frank was fehlt dir denn genau?
Also ich hab die gesamte GUI erstellt, die Comboboxen gefüllt und auch die entsprechenden Values eingetragen. Ich habe die Textfelder auf die minimale und maximale Länge begrenzt und auch, falls nötig, eine Maske draufgelegt. Jetzt habe ich versucht mir zu überlegen, wie ich die Daten in eine ATMEGA32-Kompatible .eep bekomme und stecke da seit zwei Tagen dran fest.
Frank schrieb: > Also ich hab die gesamte GUI erstellt, die Comboboxen gefüllt und auch > die entsprechenden Values eingetragen. Ich habe die Textfelder auf die > minimale und maximale Länge begrenzt und auch, falls nötig, eine Maske > draufgelegt. Jetzt habe ich versucht mir zu überlegen, wie ich die Daten > in eine ATMEGA32-Kompatible .eep bekomme und stecke da seit zwei Tagen > dran fest. weist du denn überhaupt wie du die Daten dem eep file brauchst? An welcher stelle so denn was stehen?
Ja. Das ist ja durch mein Programm im Flash des ATMEGAs festgelegt. Ich benutze eine direkte Adressierung. Ich muss halt nur noch alles irgendwie in eine eep zusammenfassen, die ich dann mittels avrdude oder so flashen kann.
dann fang mit einem byte-Array an. Dim eeprom([eeprom_size]) As Byte dann schreibst du dort deine Daten Feld für Feld rein.
Das Programm samt Bootloader funktioniert ja soweit auch (nach 96h Test) einwandfrei. Ich würde mir jetzt halt nur noch wünschen einige Parameter, welche im EEPROM des Controllers liegen auch bequem vor dem Live-Einsatz ändern zu können um mich nicht mit nem 16x2 LCD und Tastern abquälen zu müssen.
Mal angenommen ich habe 8 Checkboxen welche mir nur True oder False liefern. Wie fasse ich die in einem Byte zusammen?
Frank schrieb: > Mal angenommen ich habe 8 Checkboxen welche mir nur True oder False > liefern. Wie fasse ich die in einem Byte zusammen? das kommt doch darauf an, wie du es im eeprom erwartest? du hast doch scheinbar auch deinen µC programmiert, dort arbeitest du doch auch mit Bitoperationen, warum schaffst du das dann nicht auf dem PC?
Genau das frage ich mich auch. Ich denke, es liegt daran, dass ich seit 10 Jahren ASM aber erst seit 3 Monate VS.net programmiere. Das hatte ich vorher nur indirekt durch "So weit bin ich leider noch nicht mit VS..." geschrieben. Also: Wie bekomme ich bitweise Operationen in einem Byte hin und wie gebe ich das in eine Datei aus? Vielen Dank nochmal für die Hilfe.
Frank schrieb: > Ich denke, es liegt daran, dass ich seit 10 Jahren ASM aber erst seit 3 > Monate VS.net programmiere. Das hatte ich vorher nur indirekt durch "So > weit bin ich > leider noch nicht mit VS..." geschrieben. > Also: Wie bekomme ich bitweise Operationen in einem Byte hin und wie > gebe ich das in eine Datei aus? > Vielen Dank nochmal für die Hilfe. ich bin aber nicht so fit in vb.net (wie bist du überhaupt auf VB gekommen, bei C# könnte ich weiterhelfen). Dim x As Byte; x = 0; if ( Checkbox.Checked ) { x = x + 4; } Dim eeprom([eeprom_size]) As Byte eeprom[123] = x; schreiben geht mit dem Textwriter https://msdn.microsoft.com/de-de/library/system.io.textwriter(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2
Bits in einem Byte setzen, kann man hier erkennen, wie es in vb.net funktioniert: http://www.freevbcode.com/ShowCode.asp?ID=1478 Zum Datei schreiben, wäre vermutlich das hier geeignet: https://msdn.microsoft.com/de-de/library/system.io.file.writeallbytes(v=vs.110).aspx
Super. Damit komme ich weiter. Ich bin auf VS.net gekommen, da ichs hier per zufall lizensiert liegen habe und ich nie C gelernt habe. Immer nur in ASM programmiert. Da ich aber mit QBasic unter MSDOS Erfahrungen hatte lag VB.net nahe. Vielen Dank.
Frank schrieb: > Super. Damit komme ich weiter. Ich bin auf VS.net gekommen, da ichs hier > per zufall lizensiert liegen habe und ich nie C gelernt habe. du meinst VB.net für kleine unternehmen und privat ist es doch kostenlos, was muss man da lizensieren? Hättest du mal mit C angefangen, könntest du die gleiche Sprache auf dem PC und dem µC nutzen. C# ist dann auch kein Problem. VB ist leider immer anders - das nervt einfach nur.
Peter II schrieb: > Hättest du mal mit C angefangen, könntest du die gleiche Sprache auf dem > PC und dem µC nutzen. C# ist dann auch kein Problem. Na hallo. C# hat mit C außer der ekelhaften C-Style-Syntax nix gemein. Und genau die will man vermeiden, wann immer möglich. Und da bietet sich VB.net förmlich an, wenn man schon für .net Programmieren will oder muß. > VB ist leider immer anders Ach watt. Bei der .net-Programmierung ist es praktisch irrelevant, welche der unterstützten Sprachen man verwendet, das Framework ist ja immer das gleiche. Das muß man kennen und beherrschen und dazu die grundlegenden Konzepte objektorientierter Programmierung. Bei beidem helfen einem C-Kenntnisse etwa genausoviel wie Kenntnisse beim Melken von Kühen, denn C ist nicht objektorientiert und mit C benutzt man massiv Zeiger, die es in .net de facto nicht gibt. Statt dessen gibt es Referenzen, auch bei Parametern. Und so löst sich das Problem des TO auch ganz leicht: private sub SetBit(byref Data as byte, byval BitNumber as integer) Data = Data or cbyte(1 << Bitnumber) end sub private sub ClrBit(byref Data as byte, byval BitNumber as integer) Data = Data and cbyte(&Hff xor (1 << Bitnumber)) end sub private function BitState(byval Data as byte, byval BitNumber as integer) as boolean return (Data and cbyte(1 << Bitnumber))<>0 end function
C# vs VB(.net) - Ein Glaubenskrieg ;D https://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET#Adoption_and_community_support (...ich persönlich bevorzuge auch C# ;D)
c-hater schrieb: > Na hallo. C# hat mit C außer der ekelhaften C-Style-Syntax nix gemein. > Und genau die will man vermeiden, wann immer möglich. das ist doch immer hin etwas, mehr als bei VB c-hater schrieb: > Ach watt. Bei der .net-Programmierung ist es praktisch irrelevant, > welche der unterstützten Sprachen man verwendet, das Framework ist ja > immer das gleiche. bei VB ist der Syntax der Sprache immer anders. Array ohne [], Sting verketten mit &, Mathtematischeoperation mit anderen Operatoren. Der "C" Syntax ist da weiter verbreitet und hilft wenn man damit eine Sprache zumindest Syntaktisch lesen kann.
Peter II schrieb: > Der "C" Syntax ist da weiter verbreitet und hilft wenn man damit eine > Sprache zumindest Syntaktisch lesen kann. Du antwortest hier auf einen Beitrag von "c-hater". Das ist unser Anti-C-Forentroll, ihm mit Argumenten zu kommen, ist völlig witzlos.
bluppdidupp schrieb: > C# vs VB(.net) - Ein Glaubenskrieg ;D Das liest du aus der Aussage: > Bei der .net-Programmierung ist es praktisch irrelevant, > welche der unterstützten Sprachen man verwendet heraus? Das können nur Leute, die den Glaubenskrieg wirklich wollen. Um das nochmal mal ganz klar zu machen: Meine Abneigung gegen C# rührt einzig aus persönlichen Motiven her, nämlich der Anleihe, die C# bei der kruden C-Syntax genommen hat, allein nur, um den C-Apologeten gefällig zu sein. Ansonsten ist mir natürlich völlig klar, dasst C# im Gegensatz zu C eine vollwertige Hochsprache ist. [Edit] Mod: Den üblichen C-Bashing Dreck entsorgt.
:
Bearbeitet durch User
Ehe sich jemand aufregt: Ich hab den üblichen C-Bashing Dreck von c-hater entsorgt. Trägt nichts zur Sache bei.
In diesem Zusammenhang auch immer hilfreich: die Klasse BitConverter. Hier noch ein bisschen Lesestoff: http://www.i-programmer.info/programming/c/1281-c-bit-bashing-the-bitconverter.html
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.