-
        
+ Antworten
Ergebnis 1 bis 2 von 2

Thema: ms Messung mit C

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    16.03.2004
    Beiträge
    259

    ms Messung mit C

    Hi,
    da ich den internen Timer noch nicht verstehe möchte ich etwas mit delay (also wartezeiten) Basteln. Sagt bitte nich das ich die Timer verstehen lernen soll das mach ich später.

    Also wie kann ich eine ms Messung durchführen? Also ich möchte den Befehl delay_ms (wert) benutzen. Wie deklariere ich das oder ist das schon in einer Include Datei enthalten?

    Danke schonmal

    Grind

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    17.09.2004
    Ort
    Göttingen
    Beiträge
    17
    Code:
    // 1ms warten bei 16MHz
    void waitms(uint16_t ms) {
    	uint16_t i; 
    
    	for(i=0; i<ms; i++) {
    		//delaying 15996 cycles:
    		asm volatile(
    			"ldi R17, 0x1F	\n\t" \
    			"L1:			\n\t" \
    			"ldi R18, 0xAB	\n\t" \
    			"L2:			\n\t" \
    			"dec R18		\n\t" \
    			"brne L2		\n\t" \
    			"dec R17		\n\t" \
    			"brne L1 		\n\t"
    		);	
    	}
    }
    Die funktion verbraucht ca. 16000 Takte was bei 16MHz eine ms sind...

+ Antworten

Berechtigungen

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