Ich möchte gerne mit eine Händy Wetterdaten übermitteln für meine Modellflugclub! Ich habe da jetzt mal was geschrieben, das mir den Text und die Nummer in das grauslige PDU Format umrechnet! ==> funktioniert auch! Aber ich brauch ziemlich viel Stringfunktionen, strcyp und strcat hauptsächlich!! ==> Ist das ein Problem auf dem uC, kann ich das irgendwie umgehen ?? ==> vielleicht könnten ihr mal den Code anschauen!! Derzeit noch für den LCC-Win32 ich Probiere immer zuerst damit alles aus bevor ich auf den uC gehe!! Also jetzt muss ich es umschreiben für eine AVR ich denke mal ein atmega8535 ==> schaft er das wenn er zum Beispiel jede Minute so eine SMS über die Serielle hinaus schreiben muss?? Danke im voraus mfg mathias
Also jede Minute wird mit Sicherheit kein Problem sein. Es sei denn du reduzierst den Takt auf ein paar hundert Hertz. ;-) Pass nur auf, dass du dein Programm nicht mit immer mehr Texten ausstattest und auf einmal die Variablen vom Stack überschrieben werden.
nein also wie meinst du das ?? ich schreibe höchstens den satzt den ich im programm oben auch verwende!! mfg mathisa
Ok, wenn du das Programm so belässt wird der RAM wohl reichen. Meine eigene Erfahrung ist nur dass einem bei Mikrocontrollern immer weitere Features einfallen und irgendwann ist dann Ende mit dem Speicher (sei es nun RAM, Flash oder EEPROM).
ich mach mit einem mega128 bei 3,6864Mhz jede sekunde einen kompleten read vom sms-speicher vom handy + pdu decodierung aller messages und dann noch absetzen von retour nachrichten bei passenden messages.. alles OHNE zusatz ram... und nebenbei spielt das teil noch datalogger G.. ich glaube dein vorhaben sollte auch problemlos gehen.. vielleicht nochmal überlegen ob man nicht mit lustigem pointer hin und her schieben nicht noch ein paar 100bytes freimachen kann.. aber es sollte schon gehen (hab den code nicht durchgekuckt)... nur warum leute noch zu 8515 oder 8535 kompatibeln dingern greifen ist mir unklar... nehmt doch mega16 oder mega32... das erleichtert teilweise das leben ungemein...schon klar ein 8515 ist am anfang einfach übersichtlicher..aber dafür ist rapid prototyping am mega32 viel schöner machbar und pinkompatibel zum 8535 ist er auch... und speicher kann an bekanntlich nie genug haben g so jetzt hab ich mir den code doch schnell angekuckt... 1. bitte etwas schöner layouten das zeug.. sprich spiel dich mal mit tabs... sprich zieh das einrücken nach blockbegin gnadenlos durch.. das lohnt sich !! ;) 2. if(strlen(buf)<2){ strcpy(pdutext,"0"); strcat(pdutext,buf); }else strcpy(pdutext,buf); kann man auch so machen if(strlen(buf)<2){ strcpy_P(&pdutext[strlen(pdutext)],PSTR("0")); }else strcpy(&pdutext[strlen(pdutext)],buf); das ist zwar etwas unübersichtlicher.. aber im if verbrauchst du weniger ram (weil direkt aus dem flash kopiert wird.. dann könnte man nun auch buf wegoptimieren... itoa(strlen(text),buf,16); hab ich in meinem fall selbst nachgebildet.. char *g_HexConversionTable="0123456789abcdef"; inline void Int2Hex(char *dest,char value) { dest[1]=g_HexConversionTable[(value&0x0f)]; dest[0]=g_HexConversionTable[(value&0xf0)>>4]; } das hat unter umständen vorteile... z.b ist so meine länge immer 2 ;) sprich //laenge hinein Kopieren !! itoa(strlen(text),buf,16); if(strlen(buf)<2){ strcpy(pdutext,"0"); strcat(pdutext,buf); }else strcpy(pdutext,buf); wird sogar nur ein Int2Hex(&pdutext[strlen(pdutext)],strlen(text)); b ich sollte in den nächsten tagen (sprich gegen we) wieder mehr zeit haben.. dann werd ich mal einen preview von meiner WizAVRd installieren... der bring ich dann bei eine tool-lib zu generieren ;) denn genau bei so sondersachen ist unter umständen eine stark abgespeckte und aufs wesentliche reduzierte tool-lib recht gut... am mega128 interessiert mich der flash verbrauch nicht..aber 8k sind so recht schnell voll ;) gut die ganze nachricht ist jetz wirklich schön unübersichtlich geworden ;) gut ich hoffe das hat noch ein bisserl inspiration gebracht... und hift auch beim (hoffentlich nicht nötigen) ram freimachen G 73
Also wirklich danke für die guten Kommentare, ja ich nehme sonts schon immer Mega 32,16 oder so, ich habe aber noch 8535er rumliegen!! was ist eigentlich das inline void ?? was meinst du sonst zu Code, machst du es auch so?? mfg mathias
da hab ich anscheinend irgendwo diese funktion schneller haben wollen ;) inline sagt dem compiler er soll die funktion nicht aufrufen, sondern den code einfach an stelle des aufrufes setzen.. dadurch wirds größer, aber man erspart sich zeit und unter umständen speicher.. aber hier glaub ich, dass ichs einfach schneller gebraucht habe ;) den rest vom code hab ich mir nicht sooo genau angeschaut.. ich hab nur mal die ersten 1-2 seiten überflogen und mal schnell ein paar ideen aufgeschrieben. wenn ich heut von der uni heimkomm und zufällig zuviel zeit haben sollte werd ich mich um den restlichen code kümmern ,) btw zum thema gerade herumliegende controller ;) ich tu gerade meine alten 90s8515 verbauen... ich dachte schon,dass ich die nie mehr verbauen würde aber jetzt werden sie thermostate G 73
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.