mikrocontroller.net

Forum: Compiler & IDEs 7Bit nach 8Bit umrechnen (PDU Modus einer SMS)


Autor: Ronald H. (do7rh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche mich gerade an einer Umrechnung vom 7Bit nach 8Bit wie es 
bei einer SMS im PDU Modus verwendet wird.
Ich habe verstanden, dass ich wenn ich ein 7Bit Wort habe noch das 1. 
Bit vom nächen Wort mit dran hängen muss um auf 8 zu kommen. Beim 
nächten dann die erten 2 Bits u.s.w.
Siehe: http://www.nobbi.com/sms_pdu.htm (ganz unten).
Leider stehe ich wohl ziemlich auf dem Schlauch um das in eine oder 
besser mehrere Scheifen zu packen.
Mein Ansatz ist: Ich brauch eine Schleife (außen) die schaut, ob ich das 
Ende vom String erreicht habe.
Eine weitere, die bei jedem Durchlauf hoch Zählt für die Stelle im 
String, wo das 8 Bit Wort gespeichert wird. Und jetzt hab ich leider 
keine Idee mehr, wie ich auf dem 2. 7Bit Wort die erste, zweite, dritte 
usw. Stelle mit zu den davor liegenden 7Bits nehme und mir so meine 8Bit 
baue.

Hoffe ich habs nicht zu umständlich erklärt, ansonsten --> Frag nach!


73

Ronald

Autor: Jörg X. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Bist du weitergekommen?
Es sollte ja 'ungefähr' so gehen :D

uint16_t strTo7bit(const char* from, char* to)
{
    char curr, next;
    int8_t i=0;
    uint16_t length=1;
    next = *from++;
    while(next){
        curr = next;
        next = *from++;
        *to++ = (curr>>i)|(next<<(8-(++i)));
        i &= 0x07;
        length++;
    }
    *to = 0;
    return length;
}
ein kurzer Test am Pc (Anhang, mit MinGW getestet) sagt, dass es geht.

hth. Jörg

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was sehr oft hilft ist: Male es dir auf.

7  +------+------+------+------+------+------+------+------+
8  +-------+-------+-------+-------+-------+-------+-------+
   012345678

Nach 8 * 7 Bit, bzw. 7 * 8 Bit fängt's wieder von vorne an.
56 Bit = Kleinster gemeinsamer Teiler.

Autor: WEIF (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ronald H. (do7rh)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich mir jetzt mal den Code von Atmel vorgenommen und an mein 
Projekt angepasst. Werde ich später dann mal testen.
Vielen Dank!!!

Autor: Philipp Co (ba4_philipp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Läuft der Code gut bei Dir? Kann man also doch drauf verzichten was 
eigenes zu machen und lieber den Atmel kram erweitern?

Gruß Philipp

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.