Hallo,
ich habe ein Olimex AT90USB162 Board und habe auf meine Frage hier, nach
zwei Tagen suchen, noch keine Antwort gefunden.
Die Beispiele, „avr-usb-162_Led“ und „avr-usb-162_Button“, von Atmel
kann ich mit Flip über USB aufspielen und alles funktioniert
einwandfrei.
Ich möchte Signale vom AT90USB162 über USB ausgeben und an den PC
senden. Hier soll das Signal mit einem Programm aufgenommen werden.
Meine Frage ist folgende:
Kann man beispielsweise das Programm “avr-usb-162_Button“ so
umschreiben, dass beim drücken des Buttons nicht nur die LED leuchtet,
sondern auch ein Signal über die USB-Datenleitung zum PC gesendet wird?
Oder gibt es so ein Programm evtl. schon?
Dieses Signal möchte ich dann mit einem Programm auf dem PC sichtbar
machen. Das wäre ein Anfang.
Später sollen dann elektrische Größen vom Mikrocontroller verarbeitete
und zum PC gesendet werden.
avr-usb-162_Button code
1 | /* Sample program for Olimex AVR-USB-162 with AT90USB162 processor
|
2 | * Toggles the Led On when the button is pressed
|
3 | * Compile with AVRStudio+WinAVR (gcc version 3.4.6) */
|
4 |
|
5 | #include "avr\io.h"
|
6 |
|
7 | void PORT_Init()
|
8 | {
|
9 | PORTB = 0b00000000;
|
10 | DDRB = 0b00000000;
|
11 |
|
12 | PORTC = 0b00000000;
|
13 | DDRC = 0b00000000;
|
14 |
|
15 | PORTD = 0b00000000;
|
16 | DDRD = 0b00010000; //set Led as output
|
17 | }
|
18 |
|
19 | int main(void)
|
20 | {
|
21 | PORT_Init();
|
22 |
|
23 | asm("WDR"); //Watchdog Timer Reset
|
24 | MCUSR= ~(1<<WDRF);
|
25 | WDTCSR = (1<<WDCE) | (1<<WDE);
|
26 | WDTCSR = 0x00;
|
27 | WDTCKD = 0x00;
|
28 |
|
29 | while (1)
|
30 | {
|
31 | if (!(PIND & 0b10000000))
|
32 | PORTD = PORTD | 0b00010000;
|
33 | else
|
34 | PORTD = PORTD & 0b11101111;
|
35 | }
|
36 | return 0;
|
37 | }
|
Danke für die Antworten