Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > hallo allerseits > > > > ich benutze den gnu compiler für C16x microcontroller von hightec mit dem beispiel zur c-programmierung von Eric Hospel (aus dem ASM bereich). > > > > alles funktioniert bestens, bis auf das einschalten der interrupts: > > SET_SFRBIT(ien) > > [ #define SET_SFRBIT(NAME) __asm__ volatile ("bset "#NAME"") ] > > lässt das programm einfach anhalten(also wahrscheinlich abstürzen) > > > > selbiges gilt (irgendwie logischerweise) für SET_SFRBIT(psw.11) > > [psw.11 == ien] > > > > nicht aber für CLR_SFRBIT(ien) > > oder zB SET_SFRBIT(p1L.0) etc. > > > > ist an IEN irgendwas besonders? oder hat jemand eine idee was hier schief läuft? > > > > danke > > hannes > > > > > > PS: > > danke @ andre (und wer sonst noch so beteiligt ist/war) für die beste(wenn auch einzige ;) CC2 site. > > > > > > hallo! > > ich hatte mich auch erst kürzlich mit diesem problem beschäftigt. > ich wollte den rücksprung zum C2-programm realisieren, aber offensichtlich > konnten nach(und während) dem ausführen der C-Routine keine interrupts > mehr ausgeführt werden. das system hing sich immer auf. > Ich fand heraus, dass der assemblercode der in der ctr0_167.s steht > dafür verantwortlich ist. Dort werden wahrscheinlich die interrupt-pointer gelöscht > (initialize dpps) .wenn alles bis auf den aufruf der C-Routine stehen lässt, > funktioniert es! dann braucht man die interrupts auch gar nicht erst ausschalten. > > außerdem hab ich den aufruf der C-Routine so gestaltet, dass die interrupts nicht > "gestört" werden.so kann man auch ohne weiteres zurück springen. > zum C2-Programm springen kann > > das steht jetzt bei mir in der crt0_167.s: > > .text > start: > pop r1 @workaround für VM-Bug > pop r1 > jmps SEG:_main,SOF:_main > > wenn man die main-funktion nun verlässt kommt man wieder in das c2-programm > jetzt kann man auch beliebig oft die interrupts aus und einschalten,ohne dass das > programm abstürzt!