- Labornetzteil AliExpress    Werbung      
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
    32
    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-

  2. #2
    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

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

    Vielen vielen vielen Dank!!!

    Endlich kanns weitergehen...

    Viele herzliche Grüße
    -schumi-

  4. #4
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    32
    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-

  5. #5
    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 ('-'-'-')

  6. #6
    Erfahrener Benutzer Roboter-Spezialist Avatar von -schumi-
    Registriert seit
    30.12.2009
    Ort
    Wasserburg am Inn / Bayern
    Alter
    32
    Beiträge
    449
    Hier gibts die Sourcen zu dem ganzen: https://www.roboternetz.de/community...936#post522936

Ä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
  •  

    Werbung      fchao-Sinus-Wechselrichter AliExpress