Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.26 KB | None | 0 0
  1. // Projekt: A3_SensorAktorModul
  2. // Datei: A3_SensorAktorModul.cpp
  3.  
  4. #define _CRT_SECURE_NO_WARNINGS
  5. #include <conio.h>
  6. #include <stdio.h>
  7. #include <Windows.h>
  8. #include "SAM.h"
  9.  
  10. void main()
  11. {
  12.     printf("Ansteuerung des Sensor-Aktor-Moduls\n");
  13.     // eigenes Programm zur Ansteuerung des SAM
  14.     OpenSAM(); //Verbindung herstellen
  15.     bool ende = false; // Taste Esc setzt ende auf true
  16.     bool rechts = false;
  17.     int taste = 0;
  18.     short n = 1;
  19.  
  20.     //do { // Hier kommt das gesamte Programm
  21.     //  printf("Ich rechne noch …\n");
  22.     //  WriteValue(LED, n);
  23.     // 
  24.     //  if (_kbhit() != 0) // Test auf Tastendruck
  25.     //  {
  26.     //      taste = _getch(); // Taste lesen
  27.     //      if (taste == 'r') // War es die Esc-Taste?
  28.     //          rechts = true;// Ja, dann Ende der while-Schleife
  29.     //      if (taste == 'l') // War es die Esc-Taste?
  30.     //          rechts = false;
  31.     //  }
  32.  
  33.     //  if (rechts == false)
  34.     //      n = n >> 1;
  35.     //  if (rechts == true)
  36.     //      n = n << 1;
  37.     // 
  38.     //  if (n > 128)
  39.     //      n = 1;
  40.     //  if (n < 1)
  41.     //      n = 128;
  42.     // 
  43.     //  Sleep(50);
  44.  
  45.     //  if (_kbhit() != 0) // Test auf Tastendruck
  46.     //  {
  47.     //      taste =_getch(); // Taste lesen
  48.     //      if(taste == 0x1B) // War es die Esc-Taste?
  49.     //          ende = true;// Ja, dann Ende der while-Schleife
  50.     //      }
  51.     //  } while(ende == false);
  52.  
  53.  
  54.         //2. Aufgabe Schalter einlesen
  55.     short schalter;
  56.     short maske;
  57.     int anzahl;
  58.     do {
  59.         ReadValue(SWITCH, &schalter); //speichert
  60.         maske = 0x80;
  61.         anzahl = 0;
  62.         for (int i = 0; i < 8; i++) {
  63.             // alle 8 Bits(Schalter) einzeln auf 0 oder 1 prüfen
  64.             if ((schalter & maske) != 0) {
  65.                 anzahl++;
  66.                 printf(" 1");
  67.             }
  68.             else {
  69.                 printf(" 0");
  70.             }
  71.             maske = maske >> 1; //alle Bits nacheinander testen das gleiche wie *2 bzw /2
  72.         }
  73.         printf("Anzahl eingeschalteter Schalter: %d", anzahl);
  74.         printf("Schalter: 0x%02X\r", schalter); //%02X schreibe grosse Hexadezimal mit nullen und zwei Stellen
  75.  
  76.     } while ((schalter&0x80)!=0);  //bricht ab wenn Schalter 7ausgeschaltet wird
  77.     //_kbhit() == 0  Zeichen bleibt im Tastaturpuffer, liest nicht ein
  78.    
  79.  
  80.  
  81.     CloseSAM(); // Kommunikation beenden
  82.  
  83.  
  84.     _getch();
  85.     //Scanf wartet auf(wartet auf Enter drücken)
  86.     //getch keine Typumwandlung, nur ASCII Zeichen, wartet auch (irgendeine Taste)
  87.     //_kbhit prüft ob Taste gedrückt wurde
  88.     // enter taste '\r'  esc tast 0x1B
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement