Moin @ll,
ich greife hier mal das Leidige Thema EEPROM beim ATMEGA16 auf.
Kurz?
Ich will mir eine Dongleserie bauen, welche die entsprechende
Seriennummer im EEProm speichert und je nach fkt gewisse Aktionen auf
einem Server freisetzt.
dies liegt aber noch in ferner Zukunft. :-D
Soweit läuft dieses Schöne Programm auch vernünftig, wenn man bedenkt,
das ich µC Quasi Alleine und Ohne Lehrer und co erarbeitet habe. also in
gewissen punkten nicht gleich mit der Latte über den Zaun brechen. Danke
Nun aber zum eigendlichen Punkt, da mir in diesem Fall keine Literatur
wirklich Hilfe brachte. :(
1
test_SN('Y',50,48,(int)rxd[2],(int)rxd[3]);
<--- Hier wird zB das Jahr 2016 übertragen (Diesen würde ich gerne in
einem Value setzten wollen.
1
voidtest_SN(charValue,intV1,intV2,intV3,intV4)
2
{
3
4
putch((char)V3);
5
putch((char)V4);
6
ee_write_SN(V3,V4);
7
putch('|');
8
putch(Value);
9
putch('2');
10
putch('0');
11
putch('|');
12
ee_read_SN();
13
putch(Y1);
14
putch(Y2);
15
return;
16
17
}
<--- die eigendliche EEProm W/R aktion.
alles was
1
putch()
dient nur als Debugmaterial
1
//define EE_SN_Year 0x001 // 2 Byte wenn zsm schreibbar sonst Byte für Byte EEProm erstellen
2
#define EE_SN_Year_1 0x001 // 2 byte
3
#define EE_SN_Year_2 0x002
4
5
6
voidee_write_SN(uint8_tY1,uint8_tY2)//, uint8_t M, uint8_t W, uint16_t Nr)
eeprom_write_byte((u16)EE_SN_Year_1,Y1);// Jahr schreiben 10er Wert
10
eeprom_write_byte((u16)EE_SN_Year_2,Y2);// Jahr schreiben 1er Wert
11
schreiben
12
}
13
14
voidee_read_SN(void)
15
{
16
//Year = eeprom_read_word((u16*) EE_SN_Year); <-- so würde ich es gerne gaben wollen
17
Y1=eeprom_read_byte((u16*)EE_SN_Year_1);
18
Y2=eeprom_read_byte((u16*)EE_SN_Year_2);
19
}
Wie zu sehen ist kann ich es nicht so schreiben, wie ich es gerne hätte.
Versucht habe ich es, aber aus einem mir unerklärlichen Grund habe ich
vom gesendeten Wert zum µC und dem Gelesenen Wert aus dem EEProm einen
Unterschied von +18.
Typen welche ich Geziehlt definiert habe
1
typedefuint32_tu32;
2
typedefuint16_tu16;
3
typedefuint8_tu_8;
Nun meine Frage an euch "Freaks"
Seht ihr eine Möglichkeit dies zu vereinfachen, das man zB den wert
23659, welcher als Zeichenkette übergeben wird in den EEProm zu
schreiben OHNE das man diesen in seine Bestandteile zerlegen muß oder
werde ich dies nicht vermeiden Können.
>Joe F. schrieb:>> Naja. "Freak" = "Missgeburt". Nicht sehr schmeichelhaft.
Wenn ein Programmierfreak eine Missgeburt ist, dann bleibt es bei
letzteres.
oder wäre die Bezeichnung Nerd abgebrachter?
Maik G. schrieb:> oder wäre die Bezeichnung Nerd abgebrachter
Das musst du beurteilen. Nerd = Fachidiot oder Streber.
Naja, dir wurde geholfen. Ein Lexikon wäre ganz gut für dich.
Rolf M. schrieb:> Für dich vielleicht auch
Was willst du mir damit sagen?
Ich denke nicht, dass ich Probleme mit der Rechtschreibung von "Freak"
und "Nerd" habe.
Die Abfälligkeit, die beiden Begriffen anhaftet, kann ein deutschesRechtschreiblexikon ja wohl offensichtlich nicht erklären.
Tip: beide Begriffe mal in die Bildersuche von Google eingeben.
Der Andere schrieb:> Rolf M. schrieb:>> Für dich vielleicht auch:>> Meinst du? Nerd im Englischen steht z.B. auch für "Schwachkopf",> "Sonderling" und "Fachidiot".
Und "public viewing" steht dort für das öffentliche Aufbaren von
Leichen.
Nur selten gibt es nur eine Bedeutung. Ist es da so wichtig, was es im
Englischen unter anderem auch noch bedeuten könnte?
Joe F. schrieb:> Rolf M. schrieb:>> Für dich vielleicht auch>> Was willst du mir damit sagen?> Ich denke nicht, dass ich Probleme mit der Rechtschreibung von "Freak"> und "Nerd" habe.
Link nicht angeklickt? Da steht nicht nur, wie man es schreibt, sondern
auch, was es bedeutet.
> Die Abfälligkeit, die beiden Begriffen anhaftet, kann ein deutsches> Rechtschreiblexikon ja wohl offensichtlich nicht erklären.
Ob ein Wort abfällig ist, kommt ganz wesentlich auch auf den Kontext an.
Ich hab's in diesem Kontext nicht als abfällig wahrgenommen.
Aber gut, nehmen wir Wikipedia:
Ein Freak [fɹi:k] (aus dem Englischen freak: „Krüppel, Verrückter,
Unnormaler“ bzw. freak of nature: „Laune der Natur“, aber auch
„Begeisterter“) ist in der heutigen Umgangssprache meist eine Person,
die eine bestimmte Sache, zum Beispiel ihr Hobby, exzessiv bzw. über ein
„normales“ Maß hinaus betreibt, diese Sache zum Lebensinhalt macht oder
sich zumindest mehr als andere darin auskennt (beispielsweise ein
Computerfreak).
Rolf M. schrieb:> Ist es da so wichtig, was es im> Englischen unter anderem auch noch bedeuten könnte?
Wenn ich Hilfe von jemanden erwarte: ja. Da empfiehlt es sich nicht,
jemanden gleich mal zu beleidigen.
Ansonsten: schreib's auf deutsch hin, so in der Art, "Hey, ihr
Coding-Nutten, brauche da mal nen Tipp. So Gestörte wie Ihr habt da ja
bestimmt gleich was auf Lager. ;-) ;-) ;-)"
(Smileys auf keinen Fall vergessen)
Joe F. schrieb:> Wenn ich Hilfe von jemanden erwarte: ja. Da empfiehlt es sich nicht,> jemanden gleich mal zu beleidigen.
Da bist du wahrscheinlich einer der ganz wenigen, die das Wort
"Computerfreak" als eine Beleidigung sehen. Die meisten verstehen
darunter einen Menschen, der sich besonders gut damit auskennt und
besonders viel damit zu tun hat.
Aber wenn du unbedingt beleidigt sein willst, ist das natürlich ganz
allein deine Entscheidung. :-)
Erwin D. schrieb:> Joe F. schrieb:>> Wenn ich Hilfe von jemanden erwarte: ja. Da empfiehlt es sich nicht,>> jemanden gleich mal zu beleidigen.>> Da bist du wahrscheinlich einer der ganz wenigen, die das Wort> "Computerfreak" als eine Beleidigung sehen. Die meisten verstehen> darunter einen Menschen, der sich besonders gut damit auskennt und> besonders viel damit zu tun hat.>> Aber wenn du unbedingt beleidigt sein willst, ist das natürlich ganz> allein deine Entscheidung. :-)
So ist es.
Welche Bedeutung ein Wort hat, hängt immer vom Kontext ab.
Sowohl "Freak" als auch "Nerd" kann negativ gemeint sein - muss es
aber nicht. Die Charaktere in "Bing Bang Theory" sind auch Nerds, und
sie erfreuen sich großer Beliebtheit.
Ich haette das eher so formuliert:
"Und nun meine Frage an die Freaks..."
Das ist nicht beleidigend, sondern vorausgeschicktes Lob, ala nur ein
Spezialist kann das Loesen.
Erwin D. schrieb:> Aber wenn du unbedingt beleidigt sein willst, ist das natürlich ganz> allein deine Entscheidung. :-)
Ich würde das auch als beleidigend oder zumindest nicht positiv
bewerten, schließlich spricht auch niemand von einem Kochfreak oder
Gartenfreak. Da soll schon die Andersartigkeit betont werden.
Typisch Internet.
Jemand stellt eine Frage, daraufhin bricht eine Diskussion darüber aus
ob Freak und Nerd Beleidigungen sind, oder eben nicht.
Warum ist das so wichtig?
Könnte man mal bitte wieder zum Eigentlichen Thema zurückkommen???
Andernfalls Bitte ich um SOFORTIGE Löschung nicht themenbezogener
Antworten.
Danke für euer Verständnis.
Maik G. schrieb:> Könnte man mal bitte wieder zum Eigentlichen Thema zurückkommen???
Dazu hat wahrscheinlich keiner eine Idee.
Maik G. schrieb:> Versucht habe ich es, aber aus einem mir unerklärlichen Grund habe ich> vom gesendeten Wert zum µC und dem Gelesenen Wert aus dem EEProm einen> Unterschied von +18.
Da würde ich erstmal versuchen herauszufinden, woran das liegt. Was mir
aufgefallen ist: Deine Casts sind falsch, aber das sollte eigentlich
nicht zu dem Problem führen.
eeprom_read/write_byte braucht als ersten Parameter einen Zeiger auf u8
und eeprom_read/write_word einen Zeiger auf u16.
Danish B. schrieb:> Jemand stellt eine Frage, daraufhin bricht eine Diskussion darüber aus> ob Freak und Nerd Beleidigungen sind, oder eben nicht.
Es fing damit an, dass "Joe F" sich durch die Frage beleidigt gefühlt
hat - meines Erachtens unbegründet.
> Warum ist das so wichtig?
Wirklich wichtig ist es nicht. Wäre es so, würde ich es nicht irgendwo
in einem Internet-Forum diskutieren.
Rolf M. schrieb:> Maik G. schrieb:>> Versucht habe ich es, aber aus einem mir unerklärlichen Grund habe ich>> vom gesendeten Wert zum µC und dem Gelesenen Wert aus dem EEProm einen>> Unterschied von +18.>> Da würde ich erstmal versuchen herauszufinden, woran das liegt. Was mir> aufgefallen ist: Deine Casts sind falsch, aber das sollte eigentlich> nicht zu dem Problem führen.> eeprom_read/write_byte braucht als ersten Parameter einen Zeiger auf u8> und eeprom_read/write_word einen Zeiger auf u16.
Danke für diese Antwort.
Bezüglich der Casts muß ich zugeben, das ich da noch sehr viel
Übungsbedarf habe.
Aber wie du ja auch sehen kannst, verwende ich bei read/write_word u16
im ersten Parameter, da es sich ja um die Adresse des EEProm handelt.
Soweit sind wir uns ja einig.
Weiterhin verstehe ich dach deiner Aussage
> eeprom_read/write_byte braucht als ersten Parameter einen Zeiger auf u8
nicht warum ich bei u16 dann aber die richtigen Werte zurückbekomme,
wenn ich die Byte für Byte in den EEProm schreibe und auslese.
1
eeprom_write_byte((u16)EE_SN_Year_1,Y1);// Jahr schreiben 10er Wert
2
eeprom_write_byte((u16)EE_SN_Year_2,Y2);// Jahr schreiben 1er Wert
<--- Schreibt 1 und 6
1
Y1=eeprom_read_byte((u16*)EE_SN_Year_1);
2
Y2=eeprom_read_byte((u16*)EE_SN_Year_2);
<--- Liest 1 und 6
Das es sich hier um einen Zufall handelt, wage ich zu bezweifeln, da ja
allgemein bekannt ist, das C/C++ diesbezüglich sehr Penibel ist.
Weiter schauen.