Forum: PC-Programmierung .eep mit VisualStudio erstellen


von Frank (Gast)


Lesenswert?

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?

von Peter II (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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?

von Frank (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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?

von Frank (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

dann fang mit einem byte-Array an.

Dim eeprom([eeprom_size]) As Byte

dann schreibst du dort deine Daten Feld für Feld rein.

von Frank (Gast)


Lesenswert?

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.

von Frank (Gast)


Lesenswert?

Mal angenommen ich habe 8 Checkboxen welche mir nur True oder False 
liefern. Wie fasse ich die in einem Byte zusammen?

von Peter II (Gast)


Lesenswert?

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?

von Frank (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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

von bluppdidupp (Gast)


Lesenswert?

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

von Frank (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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

von bluppdidupp (Gast)


Lesenswert?

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)

von Peter II (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von c-hater (Gast)


Lesenswert?

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
von Karl H. (kbuchegg)


Lesenswert?

Ehe sich jemand aufregt:
Ich hab den üblichen C-Bashing Dreck von c-hater entsorgt. Trägt nichts 
zur Sache bei.

von Borislav B. (boris_b)


Lesenswert?

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
Noch kein Account? Hier anmelden.