Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Absturz über 57 k Programm Kategorie: Programmierung C (von Joerg - 15.11.2015 18:57)
Als Antwort auf Re: Absturz über 57 k Programm von Josef - 15.11.2015 12:55

> > > > Hallo Torsten,
> > > >
> > > > habe den code dahingehend geändert, ergab leider keine �nderung, bleibt genau beim switch hängen.
> > > > Ist dies wirklich ein Problem, wenn ich mit switch eine Bytevariable abfrage.
> > > > Ich komme mit dem Byte nicht an die Grenze von 32 767, ich muss  nur darauf achten, dass ich
> > > > beim case nicht negativ werde.
> > >
> > > Hallo Josef,
> > >
> > > schade ... hatte gedacht dass in der Sprungweitenberechnung was schief
> > > läuft. Weder die Anzahl der Anweisungen innerhalb einer "switch"
> > > Kontrollstruktur, noch die Grö�e des eigentlichen Programms sind
> > > alleine dafür verantwortlich. Das lässt sich mit dem Programm
> > > "TestSwitch.cc" gut nachvollziehen.
> > >
> > > GruÃ? Torsten
> > Hallo Torsten,
> >
> > herzlichen Dank für deine Mühe. Habe auch sehr gehofft , dass mit der �nderung der
> > Variablen auf int der Fehler behoben ist.
> > Das von dir beigefügte Programm funkt bei mir auch.
> >
> > Ich habe bei meinem Programm bis zur switch Abfrage, die nicht akzeptiert wird noch
> > folgendes ausprobiert:
> > -alle switch Variablen bis zu void page_change(void) auf int Variable geändert-kein Erfolg
> > - default beim switch eingefügt - kein Erfolg
> > -watch dog entfernt - kein Erfolg
> > -U-Prg Aufruf -> PORT_INIT (); deaktiviert - Erfolg
> >
> > Meldungen:
> > Ã?bersetze Projekt Haussteuerung
> > C-Control Pro Compiler (C) 2011  Conrad Electronic
> > Durchlaufe Pass 1
> > Durchlaufe Pass 2
> > 1126 bytes (4kb:45% - 64kb:1%) globale Variablen
> > Generiere Bytecode - 57035 bytes..
> > Schreibe Symboldaten - 26790 bytes..
> > Starte AVRA Assembler
> > Linken der Assembler Adressen erfolgreich
> >
> > also über 57 k
> >
> > Ausgaben:
> > Interpreter gestartet - 4kb RAM                                                                                        
> >  0  0  5  6  m_page: 0 switch ANFANG  default  switch ENDE  10
> >
> > switch wird akzeptiert - Programm läuft
> >
> > Frage macht mein Prg bei dir denselben Fehler?
> >
> Hallo Torsten,
>
> habe noch weiter getestet:
> Deaktiviere ich den 10ms Interrupt (    Irq_SetVect(INT_TIM2COMP,INT_10ms);) dann
> funkt das ganze wieder.
> Bei Deaktivierung der anderen Interrupts mit aktiviertem 10ms Interrupt funktionierts
> nicht.
> Habe den 10ms Interrupt in dein Prg eingebaut, hier funktioniert dieser auch.

Hallo Josef,

wie ich oben schon mal sagte, es ist vermutlich eine ungüstige Kombination....

Versuche doch mal einzelne Funktionen in dem 10ms Interrupt zu aktivieren, deaktivieren. Von gar nichts bis alles....
Die Funktionen in meinem 10ms Interrupt habe ich damals auch reduziert.

Grü�e Jörg
 


    Antwort schreiben


Antworten: