Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Einfach nur einen Wert ausgeben Kategorie: Programmierung C (von Hannes - 2.02.2007 12:29)
Als Antwort auf Einfach nur einen Wert ausgeben von Gast - 2.02.2007 10:36
Ich nutze:
C-Control Pro Mega32, eigenes Board
Hallo,

man kann den Wert einer Variablen in einen String umwandeln und dann den String ├╝ber die serielle
Schnittstelle ausgeben.
Anbei ist ein Programm das den Inhalt des internen EEPROM ausliest und die Adresse und den Inhalt
der Adr. an Hyperterminal schickt. Bei Hyperterminal sind die Parameter entspr. dem Programm
einzustellen, man kann die Daten gleich in eine Textdatei schreiben (├ťbertragung -> Text aufzeichnen)

Gruss






/*
    Auslesen des EEPROMs und Daten├╝bertragung auf Hyper-Terminal (WinXP)

    EEPROM_lesen.cc


*/


#define LF 0x0A                                             // Zeilenvorschub
#define CR 0x0D                                             // Wagenr├╝cklauf
#define SPACE 0x20                                          // Leerzeichen
#define EEStartAdr 0;                                       // EEPROM Start-Adresse
#define EEEndAdr 900;                                       // EEPROM End-Adr

word EESAdr, EEEAdr;

void main(void)
{
    EESAdr=EEStartAdr; EEEAdr=EEEndAdr;                     // EEPROM Start und End-Adresse zuordnen

    Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD115200);   // Schnittstelle 0, 8Bit, 1Stop-Bit
    AbsDelay(500);

    EEPROM_lesen();                                         // EEPROM auslesen

}



void EEPROM_lesen(void)
{
    byte Wert;
    char text[6], zaehler;
    word Adr;

    zaehler= 1;
    Serial_Write(0, CR);                                    // Wagenr├╝cklauf
    Serial_Write(0, LF);                                    // Zeilenvorschub

    for (Adr=EESAdr; Adr<=EEEAdr; Adr++)
    {
         Wert = EEPROM_Read(Adr);

         Str_WriteWord(Adr, 10, text, 0, 5);                  // Adresse in einen String umwandeln
         Serial_WriteText(0, text);                           // Adresse als String ausgeben
         Serial_Write(0, SPACE);                              // Leerzeichen
         Str_WriteWord(Wert, 10, text, 0, 3);                 // Wert in einen String umwandeln
         Serial_WriteText(0, text);                           // Wert als String ausgeben
         Serial_Write(0, SPACE);                              // Leerzeichen

         if(zaehler == 10)                                    // nach zaehler Ausgaben
         {
            Serial_Write(0, CR);                              // Wagenr├╝cklauf
            Serial_Write(0, LF);                              // Zeilenvorschub
            zaehler= 0;
         }
         zaehler++;

     }
}


    Antwort schreiben


Antworten:

Re: Einfach nur einen Wert ausgeben (von Gast - 2.02.2007 13:06)