Hallo, ich bin gerade dabei ein an das Sony SIRCS-Protokoll angelehntes Ein-Draht Protokoll zu schreiben. (SIRCS ist ja eigentlich für IR aber es soll auch für Draht gut funktionieren!) Es gibt nur zwei gleichberechtigte Geräte. Problem ist nur, dass meine Routine, die für das Senden und Empfangen zuständig ist einfach zu viel Speicher verbraucht 1286 Byte!!! Also knapp 70% des Flashs meines ATTiny26... Über Verbessungsvorschläge würde ich mich daher wirklich freuen! Vielen Dank, Daniel ps. die Funktion um die es geht heißt DDBusCheck().
versuch mal die math.h weg zu lassen. so wie es aussieht benutzt du die ja sowieso nicht
Hallo, math.h brauch ich leider für die fmod Fkt. (also modulo) Macht aber auch nicht allzuviel aus... Das kann doch nicht sein, dass das so viel Speicher braucht... hab ich da zu viel if Abfragen??? Grüße, Daniel
Das geht aber einfacher: if (fmod(DDcountbit,2) != 0) // Alle ungeraden Bits ...esendet. Einerseits könntest Du einfach den modulo-Operator statt einer _floatingpoint_(!)-Funktion verwenden if ((DDcountbit % 2) != 0) oder noch einfacher nur das letzte Bit untersuchen: if (DDcountbit & 1) Das macht exakt dasselbe.
OOkkk... Mist. Das kommt davon wenn man nicht nachdenkt!! Jetzt bin ich runter auf 40% (von vorher 80)... Vielen Dank für die Hilfe! Daniel
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.