Nennt sich dieses Programm eventuel HyperTerminal? Er zeigt die auf der RS232 empfangenen Daten an. START -> Programme -> Zubehör -> Komunikation -> Hyperterminal
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
Nennt sich dieses Programm eventuel HyperTerminal? Er zeigt die auf der RS232 empfangenen Daten an. START -> Programme -> Zubehör -> Komunikation -> Hyperterminal
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
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.
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); }
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?
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.
MFG Moritz
www.free-webspace.biz/update
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; } }
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?
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...
Lesezeichen