- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 10

Thema: Sehe Fehler nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    @Ceos

    Habe den Code gerade vereinfacht (siehe oben), das Problem bleibt aber

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    zeig bitte auch wie deine arrays deklariert sind, vll. gewinnt man dann mehr überblick ich finds bisher auch seltsam
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Ich hab das ganze Projekt jetzt mal kopiert und alles rausgeschmissen, was ich nicht brauche. Hier die LED-Board.c:

    Code:
    #include <avr/io.h>
    #include <avr/pgmspace.h>
    #include <stdlib.h>
    #include <util/delay.h>
    #include "ledboard.h"
    
    
    
    
    const prog_char char_A[6] = {    0b00111111,
                                    0b01001000,
                                    0b01001000,
                                    0b01001000,
                                    0b00111111};
                                    
    const prog_char char_B[6] = {    0b01111111,
                                    0b01001001,
                                    0b01001001,
                                    0b01001001,
                                    0b00110110};
                                    
    const prog_char char_C[6] = {    0b00111110,
                                    0b01000001,
                                    0b01000001,
                                    0b01000001,
                                    0b00100010};
    
    
    unsigned char LEDTable_text[30];
    
    
    void putaintoled (void)
    {
        unsigned char Pos_2;
        unsigned char Pos_1;
    
    
        Pos_1 = 0;
        Pos_2 = 0;
        while(Pos_2 <=4)
        {
            LEDTable_text[Pos_1] = char_A[Pos_2];
            Pos_1 = Pos_1 +1;
            Pos_2 = Pos_2 +1;
        }
                
        LEDTable_text[5] = 0b10000000;
    }
    
    // ------------------------------- Ab hier nur noch Funktionen um den Text mit den LEDs auszugeben -----------------------
    
    
    void PrintByte2LEDs (unsigned char data, unsigned char posonboard) // Spalte der LED-Matrix ansteuern
    {
        unsigned char Data_for_Block_dez = 0;
        if(1)
        {
            BOARDHORIZ_PORT = BOARDHORIZ_PORT & ~BOARDHORIZ1 & ~BOARDHORIZ2 & ~BOARDHORIZ3 & ~BOARDHORIZ4 & ~BOARDHORIZ5 & ~BOARDHORIZ6 & ~BOARDHORIZ7;
            if(data & 0b00000001)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ1;
            if(data & 0b00000010)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ2;
            if(data & 0b00000100)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ3;
            if(data & 0b00001000)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ4;
            if(data & 0b00010000)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ5;
            if(data & 0b00100000)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ6;
            if(data & 0b01000000)
                BOARDHORIZ_PORT = BOARDHORIZ_PORT | BOARDHORIZ7;
                
            if(posonboard<=8)
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6;
                Data_for_Block_dez = posonboard;
            }
            if((posonboard>8) && (posonboard<=16))
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6;
                Data_for_Block_dez = posonboard - 8;
            }
            if((posonboard>16) && (posonboard<=24))
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6;
                Data_for_Block_dez = posonboard - 16;
            }
            if((posonboard>24) && (posonboard<=32))
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6;
                Data_for_Block_dez = posonboard - 24;
            }
            if((posonboard>32) && (posonboard<=40))
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE6;
                Data_for_Block_dez = posonboard - 32;
            }
            if((posonboard>40) && (posonboard<=48))
            {
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE2;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE3;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE4;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE5;
                BLOCKENABLE_PORT = BLOCKENABLE_PORT &~BLOCKENABLE6;
                Data_for_Block_dez = posonboard - 40;
            }
            unsigned char Data_for_Block_bin = 1<<(Data_for_Block_dez-1);
            
            BLOCKDATA_PORT = BLOCKDATA_PORT & ~BLOCKDATA1 & ~BLOCKDATA2 & ~BLOCKDATA3 & ~BLOCKDATA4 & ~BLOCKDATA5 & ~BLOCKDATA6 & ~BLOCKDATA7 & ~BLOCKDATA8;
            if(Data_for_Block_bin & 0b00000001)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA1;
            if(Data_for_Block_bin & 0b00000010)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA2;
            if(Data_for_Block_bin & 0b00000100)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA3;
            if(Data_for_Block_bin & 0b00001000)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA4;
            if(Data_for_Block_bin & 0b00010000)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA5;
            if(Data_for_Block_bin & 0b00100000)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA6;
            if(Data_for_Block_bin & 0b01000000)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA7;
            if(Data_for_Block_bin & 0b10000000)
                BLOCKDATA_PORT = BLOCKDATA_PORT | BLOCKDATA8;
        }
    }
    
    
    void PrintText2LEDs (void)  //LEDTable_text auf die LED-Matrix ausgeben (muss periodisch aufgerufen werden)
    {
        unsigned char Pos_in_LEDTable_text;
        for(Pos_in_LEDTable_text = 0; LEDTable_text[Pos_in_LEDTable_text]!=0b10000000; Pos_in_LEDTable_text++)
        {
            PrintByte2LEDs(0, Pos_in_LEDTable_text+1);
            _delay_us(1);
            PrintByte2LEDs(LEDTable_text[Pos_in_LEDTable_text], Pos_in_LEDTable_text+1);
            _delay_us(2);
            
        }
    }
    
    
    void LEDInitIO (void)
    {
        BLOCKENABLE_DDR = BLOCKENABLE_DDR | BLOCKENABLE1 | BLOCKENABLE2 | BLOCKENABLE3 | BLOCKENABLE4 | BLOCKENABLE5 | BLOCKENABLE6;
        BLOCKENABLE_PORT = BLOCKENABLE_PORT | BLOCKENABLE1 | BLOCKENABLE2 | BLOCKENABLE3 | BLOCKENABLE4 | BLOCKENABLE5 | BLOCKENABLE6;
        
        BLOCKDATA_DDR = BLOCKDATA_DDR | BLOCKDATA1 | BLOCKDATA2 | BLOCKDATA3 | BLOCKDATA4 | BLOCKDATA5 | BLOCKDATA6 | BLOCKDATA7 | BLOCKDATA8;
        BLOCKDATA_PORT = BLOCKDATA_PORT & ~BLOCKDATA1 & ~BLOCKDATA2 & ~BLOCKDATA3 & ~BLOCKDATA4 & ~BLOCKDATA5 & ~BLOCKDATA6 & ~BLOCKDATA7 & ~BLOCKDATA8;
        
        BOARDHORIZ_DDR = BOARDHORIZ_DDR | BOARDHORIZ1 | BOARDHORIZ2 | BOARDHORIZ3 | BOARDHORIZ4 | BOARDHORIZ5 | BOARDHORIZ6 | BOARDHORIZ7;
        BOARDHORIZ_PORT = BOARDHORIZ_PORT & ~BOARDHORIZ1 & ~BOARDHORIZ2 & ~BOARDHORIZ3 & ~BOARDHORIZ4 & ~BOARDHORIZ5 & ~BOARDHORIZ6 & ~BOARDHORIZ7;
    
    
    }
    Wie man sehen kann: Die Buchstaben A, B, und C liegen und bleiben im Flash, der LEDTable_text liegt im Ram (muss ja verändert werden)

    Vielen Dank schonmal :-D
    -schumi-

  4. #4
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Code:
    LEDTable_text[Pos_1] = pgm_read_byte(&char_A[Pos_2]);
    MfG
    Stefan

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    Stefan, ich könnt dich knutschen^^

    Vielen vielen vielen Dank!!!

    Endlich kanns weitergehen...

    Viele herzliche Grüße
    -schumi-

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    31
    Beiträge
    449
    So, inzwischen läuft die Sache schon ganz passabel...

    http://dl.dropbox.com/u/19005544/ledboard.MP4

    Noch mal vielen vielen Dank euch beiden :-D

    Viele Grüße
    -schumi-

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    04.08.2011
    Ort
    Hannover
    Beiträge
    164
    Coooool!!

    Danke für's Zeigen!
    Andreas
    #define true ('/'/'/')
    #define false ('-'-'-')

Ähnliche Themen

  1. ADC - Ich finde den/die Fehler nicht
    Von Christoph2 im Forum C - Programmierung (GCC u.a.)
    Antworten: 9
    Letzter Beitrag: 07.08.2007, 18:34
  2. (Problem gelöst, DANKE)sehe den Fehler nicht
    Von jar im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 06.04.2007, 19:11
  3. Mal ist Fehler da, mal nicht
    Von Fielmann im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 22.02.2007, 22:19
  4. Warum sehe ich auf dem LCD nichts?
    Von rolfw20 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 19
    Letzter Beitrag: 10.04.2006, 12:16
  5. Antworten: 3
    Letzter Beitrag: 06.01.2004, 10:25

Berechtigungen

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

12V Akku bauen