Hallo Zusammen,
für ein Projekt in der Schule muss ich mit meinem Microcontroller
(MyAVR-Board MK2 mit Atmgea8) einen Schaltverlauf eines Hilfsschalters
mit 16 Kontakten nach Labview ausgeben und auswerten.
Leider bin ich ein absoluter Neuling in C-Programmierung und nun habe
ich auch noch gesehen, dass der Port-Expander, den ich mir mangels
Eingängen bestellt habe, über BUS angesteuert wird. Den Programmcode für
die Übergabe an LabView hätte ich ohne BUS noch anpassen können, aber
das sprengt jetzt leider mein Wissen.
Könnte mir jemand einen Anstoß geben, wie ich die Eingänge vom Port
Expander abfragen und weitergeben kann?
Die normalen Eingänge werden so abgefragt und weiter gegeben:
Danke im Vorraus, würde mir sehr helfen
für ein Projekt in der Schule muss ich mit meinem Microcontroller
(MyAVR-Board MK2 mit Atmgea8) einen Schaltverlauf eines Hilfsschalters
mit 16 Kontakten nach Labview ausgeben und auswerten.
Leider bin ich ein absoluter Neuling in C-Programmierung und nun habe
ich auch noch gesehen, dass der Port-Expander, den ich mir mangels
Eingängen bestellt habe, über BUS angesteuert wird. Den Programmcode für
die Übergabe an LabView hätte ich ohne BUS noch anpassen können, aber
das sprengt jetzt leider mein Wissen.
Könnte mir jemand einen Anstoß geben, wie ich die Eingänge vom Port
Expander abfragen und weitergeben kann?
Die normalen Eingänge werden so abgefragt und weiter gegeben:
Code:
// Eingänge zusammenstellen
// Eingänge mit '0' initialisieren
Eingaenge[0] = '0';
Eingaenge[1] = '0';
Eingaenge[2] = '0';
Eingaenge[3] = '0';
Eingaenge[4] = '0';
Eingaenge[5] = '0';
// Eingangs-PINs liegen an PULL-UP-Widerstand und werden bei Beschaltung auf Masse gezogen
if(bit_is_clear(PIND,2)) // Wenn Eingang PIND,2 = 0, dann
{
_delay_ms(23); // Entprellzeit
if(bit_is_clear(PIND,2)) // Wenn Eingang PIND,2 nach Entprellung = 0, dann
{
Eingaenge[0]='1'; // binärer Wert an LabVIEW
}
}
if(bit_is_clear(PIND,3)) // Wenn Eingang PIND,3 = 0, dann
{
_delay_ms(23); // Entprellzeit
if(bit_is_clear(PIND,3)) // Wenn Eingang PIND,3 nach Entprellung = 0, dann
{
Eingaenge[1]='1'; // binärer Wert an LabVIEW
}
}
...
Eingaenge[10] = '\0'; // Ausgabestring beenden mit \0
// gesamten Eingangs-String an PC senden
print (Eingaenge);
}
}
Danke im Vorraus, würde mir sehr helfen