- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: compiler warnung

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.04.2004
    Beiträge
    60

    compiler warnung

    Anzeige

    Powerstation Test
    hallo

    kann mir vielleicht jemand sagen was das bedeutet und wo der fehler ist:

    *** WARNING L22: CLASS RANGE NOT GIVEN IN INVOCATION LINE
    CLASS: NCODE
    *** WARNING L5: SECTION LOCATED OUTSIDE CLASS AREA
    SECTION: ?C_USERSTACK
    CLASS: NDATA
    "segment" - 0 Error(s), 2 Warning(s).


    Code:
    void main(void)
    {
    	DP2= 0x003F;
    	DP8= 0x00FF;
    
    	IEN= 1;
    
    	T2CON= 0x00C7;
    	T2= 0x0013;
    	T2IC= 0x0045;
    
    	while(1)
    	{
    		_idle_();
    	}
    }
    
    
    void segment(void) interrupt 34
    {
    	P8= 0xC0;
    	P2=0x000F;
    }
    danke
    mfg

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    Ist das das ganze Programm ?
    Mit welchem Compiler übersetzt ?
    Was ist welche Zeilennummer ?
    Für welchen µC soll das gehören ?
    Macht das Prgramm das was du willst ?
    Was sollte das Programm machen ?

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    *Etwas* genauer wäre nett...

    -- welcher Compiler ist das?
    -- wo ist Zeile 22?
    -- ist das die ganze Quelle?
    -- ist das C-Quelle oder schon präprozessed?

    Davon an sieht das interrupt 34 nicht sonderlich C-mässig aus.
    Check mal die Syntax, evtl fehlen die irgendwelche Header oder cmd-line Options
    Disclaimer: none. Sue me.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.04.2004
    Beiträge
    60
    das programm schreibe ich mit keil für den infineon 167

    dass das l22 und l5 etwas mit der zeilennummer zu tun hat bezweifle ich da da ich das programm erweitert habe, die warnung auch in einem anderen programm steht und trotzdem immer derselbe text steht

    in diesem programm habe ich nur nicht die include dateien hinzugefügt sonst ist das das ganz programm.

    das programm ruft über timer einen interrupt auf und in diesem interrupt sollen nur die ports gesetzt werden.

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    also von kein weiß ich nur, daß so was existiert...

    *Glaskugel-auspack*

    Für mich sieht das eher nach einer Warnung vom Linker/Locator (ndata, segment, section...) aus und nicht vom Compiler.
    Irgendwo ist bestimmt das mem-layout des c167 beschrieben, vielleicht stimmt da was nicht?
    Oder beim Linker-Aufruf, (wegen ...invocation line...)

    Ist "segment" vielleicht ein Schlüsselwort, das da stehen muss/nicht stehen darf?
    Disclaimer: none. Sue me.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.11.2004
    Ort
    Karlsruhe
    Beiträge
    223
    Ich kenn das "segment" von einem Analog Devices DSP-Compiler. Da kann ich mit segment("foo") angeben wo eine Funktion im Speicher abgelegt wird. Allerdings muss ich da auch meine Speicherblöcke selber definieren
    Was ist das denn für ein Prozessor den du benutzt? Hat der eine feste Speicheraufteilung oder muss du dich mit Linker Description Files rumschlagen? Wenn ja vermute ich dass es eine Speicherzuweisung ist an der irgendwas faul ist.

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Der C167 hat ne recht zersäbelte Architektur, mit segmentiertem Speicherlayout.
    Disclaimer: none. Sue me.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    16.04.2004
    Beiträge
    60
    hallo

    ich habe hier eine 6 stellige multiplex anzeige mit ca. 1khz programmiert. wie könnte ich das programm umändern dass sie ca mit 0,5 sek. scrollt.
    das problem ist ja dass sie schon gemultiplexed wird.jetzt mußte ich sie aber nocheinmal multiplexen, wenn ich mich nicht täusche

    Code:
    #include <reg167.h>
    #include <intrins.h>
    
    char hex[]= { 	0xC0, //0
    				0xF9, //1
    				0xA4, //2
    				0xB0, //3
    				0x99, //4
    				0x92, //5
    				0x82, //6
    				0xF8, //7
    				0x80, //8
    				0x90, //9
    				0x88, //A-10
    				0x83, //b-11
    				0xC6, //C-12
    				0xA1, //d-13
    				0x86, //E-14
    				0x8E //F-15
    			};
    					
    
    void main(void)
    {
    	DP2= 0x003F;
    	DP8= 0x00FF;
    
    	IEN= 1;
    
    	T3CON= 0x00C0;
    	T3= 0x09C4;
    	T3IC= 0x0045; 	
    
    	T2CON= 0x00E0;
    	T2= 0x09C4;
    	T2IC= 0x0045;
      
    	while(1)
    	{
    		_idle_();
    	}
    }
    
    
    void segment(void) interrupt 35
    {
    	static int i;
    
    	for(i=1; i<=6; i++)
    	{
    		P2=0x0003F;
    
    		switch(i)
    		{
    			case 1:
    				P8=	hex[0];
    				P2=0x003E;
    				break;
    			case 2:
    				P8=	hex[1];
    				P2=0x003D;
    				break;
    			case 3:
    				P8=	hex[2];
    				P2=0x003B;
    				break;
    			case 4:
    				P8=	hex[3];
    				P2=0x0037;
    				break;
    			case 5:
    				P8=	hex[4];
    				P2=0x002F;
    				break;
    			case 6:
    				P8=	hex[5];
    				P2=0x001F;
    				break;
    			default:
    				P8=0x00;
    				P2=0x00;
    				break;
    		}
      	  	if (i==6)
    			i=1;
    	}
    }
    danke

    mfg

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Nö. Die Ausgabe mach die Ausgabe (MUX von mir aus) und die Scroll-Routine scrollt. Schreib's einfach hin, es ist einfacher als du denkst.

    Ein Feld data[6] das du scrollst und in der ISR

    Px = hex[data[i]];
    Disclaimer: none. Sue me.

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    16.04.2004
    Beiträge
    60
    hallo

    irgendwie ist mir unklar was du meinst.

    ich brauch ja auch noch einen timer der alle 0,5sek die werte auf das nächste segment verschiebt.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad