- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 24

Thema: XC8 inline Assembler

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ich lach mich kaputt.....
    Du hast ja sowas von recht Witkatz

    Oh Mann, das tut ja weh , vielen Dank für die Info
    --------------------------------------------------

    Ich habe jetzt einen laufenden Code, fast ausschließlich in "C" , basierend auf der Funktion von Klebwax(dessen Code ich geklaut habe).

    Code:
    // so viele LEDs sollen angesteuert werden:
    #define LED_COUNT 3
    
    /* Jede LED hat 3 Bytes insgesamt also 24 Bits */
    typedef  struct  // __pack weil wir keinen Speicher verschwenden wollen ????
    { 
        U8 green;     /* 8 Bit fuer die Helligkeit */
        U8 red;       /* 8 Bit fuer die Helligkeit */
        U8 blue;      /* 8 Bit fuer die Helligkeit */
    } TLed;           /* Type Bezeichner ist TLed */
    
    TLed LedArray[LED_COUNT];
    
    void LedShiftOut(U8* leds, U8 count) 
    {
        U8 one_byte;
        U8 bit_count;
    
        count *=3;             // 3 Bytes pro Led RGB
        while (count) {
            one_byte = *leds++; // next Byte
            for (bit_count = 0; bit_count < 8; bit_count++) 
            {
                if (one_byte & 0x01) // lowest Bit
                {
                    LATA5 = 1;
                    asm("NOP");
                    asm("NOP");
                    asm("NOP");
                    LATA5 = 0;
                } else
                {
                    LATA5 = 1;
                    asm("NOP");
                    LATA5 = 0;
                }    
                one_byte >>= 1;
            }
            count--;
        }
           
        Delay_ms(1);
    }
    Das Timing stimmt eigentlich nicht, aber das scheint wesentlich unkritischer zu sein als das Datenblatt vorgibt.
    Die Low Phasen dürfen nämlich viel länger sein, das scheint nicht zu stören. Die sind bei mir alle so ca. 2us.
    Die High-Phasen müssen lediglich stimmen, dann ist die Welt in Ordnung.
    Ich habe zwischen den Bytes sogar 5us Pause, das stellt kein Problem dar.

    Klicke auf die Grafik für eine größere Ansicht

Name:	Timing_RGB.png
Hits:	4
Größe:	53,3 KB
ID:	33295

    Nochmal einen DANK an alle Die mir hilfreiche Informationen gegeben haben (beonders Witkatz + Klebwax)
    Geändert von Siro (23.02.2018 um 20:20 Uhr)

Ähnliche Themen

  1. Bascom Inline-Assembler
    Von Che Guevara im Forum Assembler-Programmierung
    Antworten: 64
    Letzter Beitrag: 07.02.2012, 19:00
  2. Inline Assembler
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 01.02.2010, 19:25
  3. AVR GCC inline Assembler
    Von chientech im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 26.09.2009, 16:39
  4. Inline Assembler für Anfänger
    Von 1udo1 im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 25.10.2007, 19:53
  5. Parameterübergabe bei Inline-Assembler
    Von ogni42 im Forum C - Programmierung (GCC u.a.)
    Antworten: 21
    Letzter Beitrag: 30.03.2006, 13:32

Berechtigungen

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

LiFePO4 Speicher Test