Zeiger auf Felder



  • Habe folgendes Problem:

    Ich möchte einen Zeiger haben der einem Feld entlang läuft und das eingelesene in den Feldern ablegt.

    Dies habe ich hier für einen Lesevorgang getan:

    uint16 rdbuff[ 8 ] ;
    
    uint16* const cptr = rdbuff;
    
    ReadParallel (uint16 *cptr, uint16 adr, int16 anz)
    
    {
    		int16 j;
        		int16 werte;
    
    	     for (j=0;j<anz;j++)
    
    	 {
    
    			werte = rdlmode(adr+j);
    			pbtim = ticks(1500000);
    			while(pbtim);
    
    			cptr++;
    
    	 }
    
    }
    

    Nun möchte ich diesen Lesebefehl im Einsatz kontrollieren:

    uint16 *wrptr;
    uint16 wrbuffer[2] = {0x03,0x05};
    wrptr = wrbuffer;
    
    WriteParallel( wrptr, 0x3800, 2 );
    
    pbtim = ticks(1500000);
    while(pbtim);
    
    ReadParallel( cptr, 0x3800, 2 );
    

    Anzeige am Display:

    Wie kann ich jetzt die beiden Werte anzeigen lassen ? Gibt es eine Möglichkeit bei Zeigern wie bei Feldern, wie z.B. rdbuff[1] ?

    putshex(ZS(22,0),[b]*cptr[/b],NORML(BLK,WHT));
    putshex(ZS(22,5),[b]cptr[1] ???[/b],NORML(BLK,WHT));
    

    Danke schon mal.... 😋



  • cptr[1]
    


  • Was bezweckst du hiermit?

    pbtim = ticks(1500000); 
    while(pbtim);
    

    Wenn pbtim!=0 ist, hast du hier eine schöne Endlosschleife produziert...



  • pbtim = ticks(1500000); 
    while(pbtim);
    

    --> bitte nicht beachten...es stellt nur eine Verzögerung zwischen Schreib- und Lesevorgang dar.

    Wollte nur die einzelnen Werte der Felder durch einen Zeigerausdruck aufrufen und anzeigen lassen.

    Danke


Anmelden zum Antworten