- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 25

Thema: Daten am PC anzeigen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70

    Daten am PC anzeigen

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo, ich bin auf der Suche nach einem Prog, mit dem man Daten von einem AVR (ADC Eingang) am PC-Bildschirm anzeigen lassen kann. Ich benutzte als Programmierplattform Imagecraft ICCV7 mit einem STK500(MEGA163). Ich habe schon öffters von einem solchen Programm gehört, nur fällt mir leider der Name nicht mehr ein.

    Vielen Dank im Voraus

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    05.05.2005
    Ort
    ZH-Winterthur
    Beiträge
    99
    Nennt sich dieses Programm eventuel HyperTerminal? Er zeigt die auf der RS232 empfangenen Daten an. START -> Programme -> Zubehör -> Komunikation -> Hyperterminal

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.05.2005
    Beiträge
    101
    Hyperterminal funktioniert bei mir nicht ..
    Aus welchen Gründen auch immer, ich weis es nicht !!

    Ich empfehle dir TeraTerm Pro. Am besten einfach ma googlen.

    Gruß
    schamp

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70
    Hallo, Danke schon mal.

    @ Z80 das Prog meinte ich. Wusste nicht, dass es zu WinDoof gehört. Ich benutze jetzt aber Realterm. Habe bis jetzt zumindest geschafft, dass ich über UART die LEDs vom PC (RxD)aus angesteuert bekomme. Werde jetzt mal versuchen, mir die Taster vom STK500 am PC anzeigen zu lassen.

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70
    Hei, bekomme es irgendwie nicht hin, vom Controller Daten an den PC zu Senden. Ich poste mal meinen Code, vielleicht erkennt ja jemand einen Fehler. Das senden vom PC zum Controller funktioniert aber weiterhin.
    Code:
    #include <iom163v.h>
    #include <macros.h>
    
    void port_init(void)
    {
     DDRA  = 0x00;// Taster am STK500
     DDRB  = 0xff;//LEDs am STK500
     DDRD  = 0x02;// RXD an PD0 und TXD an PD1
    }
    
    //UART0 initialize
    // desired baud rate: 9600
    // actual: baud rate:9615 (0,2%)
    void UART0_init(void)
    {
     UBRR   = 0x19; //set baud rate
     UCSRB  = 0xD8; //enable
    }
    
    #pragma interrupt_handler UART0_rx_isr:12
    void UART0_rx_isr(void)
    {
     PORTB=UDR;
    }
    
    #pragma interrupt_handler UART0_tx_isr:14
    void UART0_tx_isr(void)
    {
     UDR=PINA;
    }
    
    //call this routine to initialize all peripherals
    void init_devices(void)
    {
     //stop errant interrupts until set up
     CLI(); //disable all interrupts
     port_init();
     UART0_init();
    
     MCUCR= 0x00; 
     GIMSK= 0x00;
     TIMSK= 0x00; //timer interrupt sources
     SEI(); //re-enable interrupts
     //all peripherals are now initialized
    }
    int main(void)
    {
     init_devices();
     while(1);
    }

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70
    Habs geschaft. Ich musste den Befehl UDR=PINA in eine while(1)-Schleife packen. Mir ist nur noch nicht so ganz klar, wesshalb ich das bei PORTB=UDR nicht machen muss.
    Geht das nicht auch ohne while-Schleife, da ansonsten der Controller ja ständig in der Schleife hängt?

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Tja, ich würde dafür sprintf und den ADC-Interrupt benutzen.

    Könntest du nochmal deinen aktuellsten Code posten, dann wird das mit Pin und port vielleicht offentsichtlich.

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70
    Hier ist mein aktueller Code:

    Code:
    #include <iom163v.h>
    #include <macros.h>
    
    void port_init(void)
    {
     DDRA  = 0x00;// Taster am STK500
     DDRB  = 0xff;//LEDs am STK500
     DDRD  = 0x02;// RXD an PD0 und TXD an PD1
    }
    
    //UART0 initialize
    // desired baud rate: 9600
    // actual: baud rate:9615 (0,2%)
    void UART0_init(void)
    {
     UBRR   = 0x19; //set baud rate
     UCSRB  = 0xD8; //enable
    }
    
    #pragma interrupt_handler UART0_rx_isr:12
    void UART0_rx_isr(void)
    {
     PORTB=UDR;
    }
    
    #pragma interrupt_handler UART0_tx_isr:14
    void UART0_tx_isr(void)
    {
    }
    
    //call this routine to initialize all peripherals
    void init_devices(void)
    {
     //stop errant interrupts until set up
     CLI(); //disable all interrupts
     port_init();
     UART0_init();
    
     MCUCR= 0x00; 
     GIMSK= 0x00;
     TIMSK= 0x00; //timer interrupt sources
     SEI(); //re-enable interrupts
     //all peripherals are now initialized
    }
    int main(void)
    {
     init_devices();
     while(1)
     {
      UDR=~PINA;
      }
    }

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    02.03.2005
    Beiträge
    70
    Habe es geschafft, mir die AD-Werte am Terminal anzeigen zu lassen. Als Referenzspg habe ich 1Volt. Der Terminal zeigt mit dann bei 0V 00 an und bei 1V ff. Dazwischen natürlich die jeweiligen Werte.

    Gibt es eine Möglichkeit, mir diese Werte direkt (online) in Excel einzulesen? Hat damit jemand eventuell Erfahrung und kann mir einen Tip geben?

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    28.04.2005
    Beiträge
    11

    Frage RS232...

    Hallo.
    Ich habe ein ähnliches Problem.
    Bin zwar soweit dass ich Zeichen bzw. Zeichenketten über den UART senden bzw. empfangen und auch verarbeiten kann mit dem Controller.
    Ich benutze das Programm HTerm.

    Allerdings stört es mich, dass ein empfangener Wert ja immer neu geschrieben wird auf dem Bildschirm.
    Ich woll ein Programm schreiben, am besten kleines Konsolenprogramm, mit welchem die Werte immer aktualisiert werden, in etwa so:
    Anzeige:
    "AD-Wert = xxxx"
    Dabei soll sich der Wert 'xxxx' immer aktualisieren wenn der Wert neu empfangen wurde.

    Vielleicht kann mir da jemand helfen !?!?!?
    Ich bräuchte also Infos, wie man dan COM-Port z.B. mit Visual C++ ansprechen kann...
    Besten Dank!

    PS: Habe natürlich schon viel gesuch im Netz, leider nichts passendes gefunden...

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test