Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
de:hardware:avr-can:exercise_1 [2010/08/10 10:16] – angelegt Wemberde:hardware:avr-can:exercise_1 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 4: Line 4:
  
 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}}
Line 14: Line 14:
  
 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.
  
Line 37: Line 37:
 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!
  
Line 53: Line 53:
 **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:**
de/hardware/avr-can/exercise_1.1281435378.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0