| Next revision | Previous revision |
| de:hardware:avr-can:exercise_1 [2010/08/10 10:16] – angelegt Wember | de:hardware:avr-can:exercise_1 [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
|---|
| |
| Für diese Übung brauchen wir ein CAN Board mit dem USB_CAN.hex Programm (board 1) | Für diese Übung brauchen wir ein CAN Board mit dem USB_CAN.hex Programm (board 1) |
| und ein zweites CAN Board (board 2). Board 2 ist Board 1 ähnlich, jedoch wurde es noch nicht programmiert. Wir nutzen ausserdem ein USB-CAN-Terminal Programm um die CAN Kommunikation zu visualisieren. | und ein zweites CAN Board (board 2). Board 2 ist Board 1 ähnlich, jedoch wurde es noch nicht programmiert. Wir nutzen außerdem ein USB-CAN-Terminal Programm um die CAN Kommunikation zu visualisieren. |
| |
| {{:en:hardware:arm-can:aufbau2.jpg?250|Figure 1.21: Setup}}{{ :en:hardware:arm-can:aufbau4.jpg?250|Figure 1.21: alternative}} | {{:en:hardware:arm-can:aufbau2.jpg?250|Figure 1.21: Setup}}{{ :en:hardware:arm-can:aufbau4.jpg?250|Figure 1.21: alternative}} |
| |
| Aufgabe: Nutze den 10-Wege Flachbandkabel um die beiden Boards zu verbinden. | Aufgabe: Nutze den 10-Wege Flachbandkabel um die beiden Boards zu verbinden. |
| Stelle sicher, dass die Anschlüsse richtig angebracht sind, wie bei bei "1" am Board gezeigt wird. Das rote Kabel muss mit dem Pin "1" verbunden werden. Programmier den ATmega32 an Board 2 so, dass eine frei wählbare Message gesendet wird. Nutze den "Beispielcode um eine CAN Message zu schicken". Kompilier den Sourcecode und flash das Programm in den ATmega32. | Stelle sicher, dass die Anschlüsse richtig angebracht sind, wie bei bei "1" am Board gezeigt wird. Das rote Kabel muss mit dem Pin "1" verbunden werden. Programmiere den ATmega32 an Board 2 so, dass eine frei wählbare Message gesendet wird. Nutze den "Beispielcode um eine CAN Message zu schicken". Kompiliere den Sourcecode und flash das Programm in den ATmega32. |
| Nutze das CAN-USB Terminal Programm wie im Kapitel "Das CAN-USB-Terminal nutzen" beschrieben um jegliche Messages welche von Board 1 empfangen werden aufzuzeichnen. | Nutze das CAN-USB Terminal Programm wie im Kapitel "Das CAN-USB-Terminal nutzen" beschrieben um jegliche Messages welche von Board 1 empfangen werden aufzuzeichnen. |
| |
| Für diese Übung brauchen wir ein CAN Board mit dem USB_CAN.hex Programm (board 1) | Für diese Übung brauchen wir ein CAN Board mit dem USB_CAN.hex Programm (board 1) |
| und ein zweites CAN Board (board 2), genau wie in Übung 1. | und ein zweites CAN Board (board 2), genau wie in Übung 1. |
| Aufgabe: Programmier den ATmega32 an Board 2 so, dass er CAN Messages empfangen kann. | Aufgabe: Programmiere den ATmega32 an Board 2 so, dass er CAN Messages empfangen kann. |
| Nutze das CAN-USB Terminal Programm um CAN Messages von Board 1 zu Board 2 zu senden. | Nutze das CAN-USB Terminal Programm um CAN Messages von Board 1 zu Board 2 zu senden. |
| Erstelle eine Struktur des Types "can_t" for die empfangende Message. | Erstelle eine Struktur des Types "can_t" for die empfangende Message. |
| Nutze passende Methoden welche von "can.h" vorgegeben werden, wie z.B "can_check_message" und "can_get_message" um den Inhalt der CAN message in der Struktur zu speichern. | Nutze passende Methoden welche von "can.h" vorgegeben werden, wie z.B "can_check_message" und "can_get_message" um den Inhalt der CAN message in der Struktur zu speichern. |
| Nutze die Methode "getled", welche in "led.h" gegeben wird und auch im "Beispielcode für LED" vorkommt, um eine beliebige LED anzuschalten, je nach Inhalt der empfangenden Nachricht. | Nutze die Methode "getled", welche in "led.h" gegeben wird und auch im "Beispielcode für LED" vorkommt, um eine beliebige LED an zuschalten, je nach Inhalt der empfangenden Nachricht. |
| Die Header-Datei "led.h" nicht vergessen! | Die Header-Datei "led.h" nicht vergessen! |
| |
| **Aufgabe:** | **Aufgabe:** |
| Füge die Programme von Übung 2 mit dem von Übung 1 zusammen, so dass es sowohl Senden als auch Empfangen kann. Die Aufgabe ist es, beide Boards mit dem gleichen Programm zu flashen, und eine Verbindung zwischen denen herzustellen. In der "while-loop" Funktion des Hauptprogramms, hole den Status der Pins D6 und PD7 um zu überprüfen ob KEY1 oder KEY2 gedrückt werden. | Füge die Programme von Übung 2 mit dem von Übung 1 zusammen, so dass es sowohl Senden als auch Empfangen kann. Die Aufgabe ist es, beide Boards mit dem gleichen Programm zu flashen, und eine Verbindung zwischen denen herzustellen. In der "while-loop" Funktion des Hauptprogramms, hole den Status der Pins D6 und PD7 um zu überprüfen ob KEY1 oder KEY2 gedrückt werden. |
| Stelle sicher, die Pull-Up Widerstände an diesen Pins (ausserhalb des while-loop) zu aktivieren. Sonst sind die Pins "floating" ohne einen definierten Status. Wenn Knopf KEY1 gedrückt wird, sende eine CAN-Message, welche die LED an dem anderen Board aktiviert. Wenn KEY2 gedrückt wird, sende eine CAN-Message, welche die LED am anderen Board deaktiviert. | Stelle sicher, die Pull-Up Widerstände an diesen Pins (außerhalb des while-loop) zu aktivieren. Sonst sind die Pins "floating" ohne einen definierten Status. Wenn Knopf KEY1 gedrückt wird, sende eine CAN-Message, welche die LED an dem anderen Board aktiviert. Wenn KEY2 gedrückt wird, sende eine CAN-Message, welche die LED am anderen Board deaktiviert. |
| |
| **Beispiel:** | **Beispiel:** |