SHARE
TWEET

Untitled

a guest Jun 18th, 2019 97 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Programmgeruest zur Aufgabe Termin6 WS2013
  2. // von: Manfred Pester
  3. // vom: 18.09.2013
  4. // @ int Operationen(volatile unsigned int* u_int_Taster, volatile unsigned int* u_int_LedsOn)
  5. @ Diese Funktion soll auf
  6. @ - LED DS1 (Bit 8) das Ergebnis von SW1 AND SW2 anzeigen
  7. @ - LED DS2 (Bit 9) das Ergebnis von SW1 OR SW2 anzeigen
  8. @ - LED DS3 (Bit 10) das Ergebnis von SW1 EOR SW2 anzeigen
  9. @ - LED DS4 und 5 (Bit 11/12) das Ergebnis von SW1 ADD SW2 anzeigen
  10. @ - LED DS6 und 7 (Bit 13/14) das Ergebnis von SW1 SUB SW2 anzeigen
  11. @ und bei gedrueckter TASTE SW3 (Bit 5) soll die Funktion ein TRUE (Wert ungleich 0) ansonsten FALSE (Wert gleich 0) an das aufrufende Programm zurueck geben.
  12. @ ACHTUNG die Tasten und auch die Leuchtdioden sind Low-Aktiv beschaltet.
  13.     .file   "Funktionen.S"
  14.     .text
  15.     .align  2
  16.     .global Operationen
  17.     .type   Operationen, %function
  18. Operationen:
  19.  
  20. // LESEN
  21. push {r4,r5,r6,r7,lr}
  22. mov r2, r0
  23. mov r7, r1
  24.  
  25. mov r3, #0  //! Too much code
  26. mov r4, #0
  27. mov r5, #0
  28.  
  29. //If the value of the button is '0', then we save a '1' in register, to make them "high active"
  30. lsrs r0, r2, #4 // SW1
  31.  movcc r3, #1
  32. lsrs r0, r2, #5 // SW2
  33.  movcc r4, #1
  34. lsrs r0, r2, #6 // SW3
  35.  ldrcc r0, =3135097598  //! why? because hexspeak.
  36.  movcs r0, #0
  37.  
  38.      
  39. // AND
  40. tst r3, r4
  41.  subne r7, r7, #0x100
  42.  
  43. // OR    
  44. cmn r3, r4
  45.  subne r7, r7, #0x200
  46.  
  47. // EOR
  48. teq r3, r4
  49.  subne r7, r7, #0x400
  50.  
  51. // ADDITION  
  52. adds r6, r3, r4
  53.  subne r7, r7, r6,lsl #11  
  54.  
  55. // SUBTRAKTION
  56. subs r6, r3, r4
  57.  subpl r7, r7, r6,lsl #13   // PL : Positiv oder Null
  58.  submi r7, r7, #0x6000      // MI : Negativ
  59.      
  60. // Beenden
  61.  
  62. str r7, [r1]
  63. pop {r4,r5,r6,r7,pc}        //! PC?
  64.  
  65.  
  66. .Lfe1:
  67.     .size   f_int_Funktionen,.Lfe1- f_int_Funktionen
  68. // End of File
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top