Advertisement
Moreno132

labos3

May 14th, 2023
1,090
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 2.08 KB | Software | 0 0
  1. MAIN    MOV     SP, #0x10000;inicijalizacija stoga
  2.         LDR     R1, GPIO1;adresa GPIO1
  3.         LDR     R2, GPIO2;adresa GPIO2
  4.        
  5. INIT    MOV     R3, #0b11111100
  6.         STR     R3, [R2, #8];inicijalizacija ulaza vrata A GPIO 2
  7.         MOV     R3, #0b10000000;
  8.         STR     R3, [R1, #8];inicijlaizacija ulaza vrata A GPIO 1
  9.  
  10. LOOP    LDR     R3, [R2];dohvati podatke sa vrata A GPIO2
  11.         ANDS    R3, R3, #00000010; provjeri da li je sklopka iskljucena
  12. OFF     STREQ   R3, [R2];ugasi ledice(R3 je 0 zbog uvjeta)  
  13.         BEQ     LOOP;
  14. ON      LDR     R3, [R1];dohvaćanje podatka sa vrata A GPIO1
  15.         MOV     R4, #0b10000000;
  16.         STR     R4, [R1];postavi ACK u 1
  17.  
  18. READY   TST     R3, #0b01000000;provjeri da li je uređaj spreman (RDY = 1)
  19.         BEQ     LOOP;
  20.  
  21. SPREMAN STMFD SP!, {R1};spremanje adrese DR na stog
  22.         BL    CITANJE;pokretanje čitanja
  23.         LDMFD SP!, {R1};čišćenje stoga
  24.  
  25. GOTOV   AND     R3, R3, #0b01111111;
  26.         STR     R3, [R1, #0];postavi ACK u 0
  27.         B       LOOP;
  28.  
  29. CITANJE STMFD   SP!, {R1-R4, LR};spremanje konteksta
  30.         LDR     R1, [SP, #20];dohvaćanje parametra sa stoga
  31.         LDR     R2, [R1];dohvaćanje temeprature
  32.         AND     R2, R2, #0b00011111;
  33.         LDR     R4, GPIO2;lokacija GPIO2 i njegovih vrata A
  34.         LDR     R3, TEMP;učitaj prethodnu temperaturu        
  35.  
  36.         ;sljedeći odsječak provjerava da li je trenutna temperatura u traženom intervalu
  37.         ;i na temelju toga daje podatak kojim se inicijaliziraju ledice
  38. UVJET   SUB     R3, R2, R3;
  39.         MUL     R0, R3, R3; R3^2 jer želimo apsolutnu vrijednost razlike
  40.         CMP     R0, #4;
  41. LEDICE  MOVHS   R0, #0b00100000;ako je razlika veca ili jednaka 2 podatak aktivira crvenu ledicu
  42.         MOVLO   R0, #0b10000000;ako je razlika manja od 2 podatak aktivira zelenu ledicu
  43.         STR     R0, [R4];postavi ledice
  44.      
  45. KRAJ    STR   R2, TEMP;spremi na lokaciju TEMP
  46.         LDMFD   SP!,{R1-R4, LR};vraćanje konteksta
  47.         MOV     PC, LR;
  48.  
  49. TEMP    DW      20;
  50. GPIO1   DW      0xFFFF0F00;
  51. GPIO2   DW      0xFFFF0B00;
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement