Frage

Ich muss diese Herausforderung tun, um ein Kameraüberwachungssystem für einen 8051-Mikrocontroller umzusetzen.

Dies sind die Spezifikationen:

    .
  1. Jede Kamera hängt mit einem Bewegungssensor zusammen, und jedes Mal, wenn er eine Bewegung erkennt, ist die Aufzeichnung dieser Kamera zu denjenigen, die registriert und gespeichert werden. Wenn der Sensor keine Bewegung länger als 5 Sekunden erfasst, wird diese Kamera nicht mehr aufgezeichnet.

  2. Wenn es keine Kamera gibt, muss der Videorecorder auf "Pause" sein;

  3. Wenn mehr als eine Kamera eingeschaltet ist, muss ein Multiplexer (MUX) verwendet werden, um die Kamerasignale auf eine Weise auszuwählen, so dass jede Kamera während 3 Sekunden aufgenommen wird. Auf diese Weise müssen alle aktiven Kameras in 3 Sekunden aufgenommen werden. Wenn nur eine Kamera aktiv ist, muss das Signal der einzige im MUX sein.

  4. Dies habe ich bereits in dem untenstehenden Code erreicht. Und was wir jetzt tun müssen, ist, die Größe des Codes ohne die Compiler-Optimierungen zu optimieren. Der Code ist jetzt 198 Bytes, aber ich versuche, unter 180 Bytes zu gelangen.

    ist es möglich? Ich habe bereits versucht, die Berechnungen der #define auszuführen, aber der Compiler optimiert das schon für mich.

    generasacodicetagpre.

War es hilfreich?

Lösung

Sie müssen wahrscheinlich den generierten Assembly-Code dafür ansehen müssen, um die letzten paar Bytes daraus auszuwringen.Es ist wahrscheinlich möglich, einige hier und dort zu rasieren, indem Sie eine Variable oder Kombinationsvorgänge wiederholen.Der resultierende Code ist nicht hübsch - oder wartbar - aber es könnte Sie nur unter Ihrer Abschaltung bringen.

Andere Tipps

Ich denke, ein Schalterkoffer anstelle von IF (Sensor1,2,3,4) könnte einigen helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top