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.
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.
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
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-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.