Forum: Mikrocontroller und Digitale Elektronik Glyn R32C/111 Starterkit, Blink-Programm fehlt


von Marvin (Gast)


Lesenswert?

Hi alle,

ich habe bei Elektor ein Glyn R32C/111 Starterkit gekauft, wie in der 
April-Ausgabe beschrieben (EVBR32C111-Carrier-USB). Leider fehlt auf der 
mitgelieferten CD das Elektor-Programm, um die LED auf dem Demo-Board 
blinken zu lassen:

LED_Blink.x30

Weiß vielleicht einer von euch wo man das finden kann?

Ansonsten schöne Ostern, wenn's soweit ist ;-)

von Jürgen (Gast)


Lesenswert?

Schau mal auf den Fenster-Titel im Bild auf Seite 21 unten.
Auf der CD ist das unter

\Samples\R32C_Interrupt_Toggle\R32C_Interrupt_Toggle\Debug\R32C_Interrup 
t_Toggle.x30

Das blinkt hier gerade munter vor sich hin ...

(Das andere Beispiel unter R32C_Elektor_OLED_1 funktionierte nicht.)


Jürgen

von Markus Webel (Gast)


Lesenswert?

Hallo Jürgen,

Bekomme folgende Fehlermeldung:

Error 401: Can´t find source file (ncrt0.a30)

Wo könnte der Fehler sein?

Markus

von Reinhard Winter (Gast)


Lesenswert?

Hallo Ihr,
habe mir ein R32C/111 Startekit Carrier USB Board gekauft.
Hatte anfangs relativ gute Erfolge mit mit den ersten Programmversuchen 
gehabt.
Habe jedoch im  Moment ein Problem mit dem Timer 0 Interrupt.
Ich komme im Moment nicht weiter da dar KD100 seinen Dienst versagt wenn 
ich das Programm starte. Ich bin im Moment etwas ratlos.Wo habe ich noch 
etwas vergessen oder falsch gemacht???
Der Interrupt wird nicht aufgerufen.
Eventuell kann mir jemand weiterhelfen. Vielen Dank im voraus.
In sect100.inc  habe ich an den entsprechenden Stellen die 
Interruptdefinitionen eingetragen.
  .glb _Timer0_Int
  .lword  _Timer0_Int  ; TIMER A0          (software int 12)
Die Auszüge aus meinem Programm habe ich unten angehängt.
Haufpmodul
#include "Test.h"
void main(void)
{

Init_timerA0();
while(1){  // Hauptprogramm schleife
  Start_T0(1000);
  while(T1_end_flag);
  p3_0= ~p3_0;
}
}
// Interruptroutinen
#include "Test.h"
// Interrupt declaration
#pragma INTERRUPT Timer0_Int

void Init_timerA0(void)
{
  asm(" FCLR I");  // Disable all interrupts
  ta0mr=0x40;  // TA0 Timer mode // count div f8
  ta0=0x0619;  // Teilerfaktor
  ta0ic=0x04;   // set interrupt level to 4
  ta0s=1;     // Start timer A0
  asm("FSET I"); // enable all interrupts
}


// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ++++++++++++++++++++++++ Interrupt +++++++++++++++++++++++++++
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// Starten einer Ablaufzeit in Abhängigkeit des Timer Interrupts
// von Timer A1
void Start_T0(int Wert){
T1MAX=Wert;
T1=0;
T1_end_flag = 1;
}
// Starten einer Ablaufzeit in Abhängigkeit des Timer Interrupts
// von Timer A1 Ablaufzeit 1mS

void Start_T2(int Wert){
T2MAX=Wert;
T2=0;
T2_end_flag = 1;
}




void Timer0_Int(void)
{
p3_0= ~p3_0;
  if (T1_end_flag){
    T1++;
    if(T1 >= T1MAX){
      T1_end_flag=0;
//      p3_0= ~p3_0;
    }

  }

  if (T2_end_flag){
    T2++;
    if(T2 >= T2MAX){
      T2_end_flag=0;
      p3_0= ~p3_0;
    }

  }
  return;
}

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
Noch kein Account? Hier anmelden.