Hallo Forum,
als Anfänger hoffe ich auf Eure Hilfe. Ich habe auch schon selbst 
fleißig gesucht, komme aber nicht weiter.
Ich will mein Progrämmchen, dass ich vor Monaten angefangen habe nun auf 
einem anderen Rechner weiterschreiben und habe die Entwicklungsumgebung 
gewechselt. Jetzt verwende ich Code Composer Essentials. Und prompt 
funktionieren meine Timer-Interrupts nicht mehr.
Die sind folgendermaßen deklariert:
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer(void)
{
  bla...;
}
#pragma vector=TIMERA1_VECTOR
__interrupt void PulseTimer(void)
{
  bla...;
}
Der Compiler warnt und meckert: unrecognized #pragma
Und er hat recht, denn TIMERAx_VECTOR ist nirgends definiert (In keinem 
Header).
Nun meine Frage: Wie kann ich das alternativ programmieren (sprich ohne 
#pragma)?
Vielen Dank im Voraus!
  All diese Dinge sind Compiler-spezifische Erweiterungen von C. D.h. du musst in der Doku deines neuen Compilers stöbern, wie die Syntax dort lauten muss.
Steht doch extra in den C-Demos für den CCE, die´s auf der TI Homepage gibt:
1  | // Timer A0 interrupt service routine
 | 
2  | __interrupt void Timer_A (void);  | 
3  | TIMERA0_ISR(Timer_A)  | 
4  | __interrupt void Timer_A (void)  | 
5  | {
 | 
6  | ....
 | 
7  | }
 | 
Vielen Dank für die Antwort. Leider reagiert der Compiler auf diesen Vorschlag mit weiteren Fehlermeldungen: # "Timer_A ist not a type name" Ist mir schon klar, lieber Compiler, das dass kein Typname ist...
Da muss man vielleicht noch irgendeine Art signal.h oder interrupt.h oder includieren? Muss man beim gcc zumindest.
Also, heute habe ich noch mal gefummelt und es hinbekommen. Die original 
vorgesehenen Makros funktionieren aus mir unbekannten Gründen nicht. 
Wenn man sie aber einzeln aufdröselt und alles manuell hinschreibt, dann 
geht's.
So funktioniert es jetzt:
__interrupt void ClockTimer(void);
void (* const ClockTimer_ptr)(void) = &ClockTimer;
#pragma DATA_SECTION(ClockTimer_ptr,".int06")
__interrupt void ClockTimer(void)
{
...
}
__interrupt void PulseTimer(void);
void (* const PulseTimer_ptr)(void) = &PulseTimer;
#pragma DATA_SECTION(PulseTimer_ptr,".int05")
__interrupt void PulseTimer(void)
{
...
}
  Wenn du dir schon CCE antust....wieso nimmst du da nicht gleich den GCC? Sonst kommst du ja recht schnell auch wieder an die 8k Grenze und zum GCC gibts hier im Forum usw auch viel mehr Material.
Hey Christian, meinst Du damit den mspgcc? Gibt es dafür irgendeine Anleitung? Ich würde den gerne in Eclipse (von mir aus auch CCE) integrieren. Oder kannst Du eine andere Umgebung empfehlen (sag jetzt nicht UltraEdit...) Wie ist das mit den Debugger? Hast Du damit Erfahrungen? Was nimmst Du für eine Entwicklungsumgebung? Uli
Ich benutze den auch, sogar "professionell" auf Arbeit. Anleitung: http://www.mikrocontroller.net/Eclipse%20und%20MSPGCC/ Geht in Eclipse sehr leicht zu integrieren. Achja, bei mir funktionieren nur die älteren Versionen (bis Mai 2006) richtig mit dem TI USB Debugger. Debugging ist manchmal bissl instabil, aber benutzbar. Bei der Anleitung ist ein kleiner Fehler drin. Wenn man die Debug-Umgebung erstellt, muss man nicht wie auf dem Bild den Cygwin Debugger auswählen, sondern den MSP430 GDB. Aber das versteht sich ja von selbst....
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.