Skip to content

Commit

Permalink
It works?
Browse files Browse the repository at this point in the history
  • Loading branch information
uberj committed Feb 25, 2012
1 parent c7dd3ad commit 0072ea9
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 56 deletions.
96 changes: 49 additions & 47 deletions Labs/Lab6/ece375-L6_MASTER.asm
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,12 @@

.equ B0 = 0b11111110 ; Right Whisker Input Bit
.equ B1 = 0b11111101
.equ FROZEN = 0b01010101
.equ FREEZE = 0b11111000
.equ B2 = 0b01010101
.equ B3 = 0b11110111
.equ B4 = 0b11101111
.equ B5 = 0b11011111
.equ B6 = 0b10111111
.equ FREEZE = 0b11111000

.equ WskrR = 0 ; Right Whisker Input Bit
.equ WskrL = 1 ; Left Whisker Input Bit
Expand All @@ -46,7 +46,7 @@
.equ EngDirL = 6 ; Left Engine Direction Bit

;.equ BotID = ;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)
.equ BotID = 0b00010001 ;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)
.equ BotID = 0b11111111 ;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)

;/////////////////////////////////////////////////////////////
;These macros are the values to make the TekBot Move.
Expand Down Expand Up @@ -151,30 +151,32 @@ MAIN:
breq BUTTON1

in mpr, PIND ; Get whisker input from Port D
cpi mpr, FREEZE
breq SENDFREEZE
cpi mpr, B5
breq SENDFREEZE ; Button 5

in mpr, PIND ; Get whisker input from Port D
cpi mpr, B3
breq BUTTON3
; Clear lds
clr mpr
out PORTB, mpr

in mpr, PIND ; Get whisker input from Port D
cpi mpr, B4
breq BUTTON4
rjmp MAIN

;in mpr, PIND ; Get whisker input from Port D
;cpi mpr, B2
;breq BUTTON2

in mpr, PIND ; Get whisker input from Port D
cpi mpr, B5
;breq BUTTON5
breq SENDFREEZE
;in mpr, PIND ; Get whisker input from Port D
;cpi mpr, B3
;breq BUTTON3

in mpr, PIND ; Get whisker input from Port D
cpi mpr, B6
breq BUTTON6
;in mpr, PIND ; Get whisker input from Port D
;cpi mpr, B4
;breq BUTTON4

rjmp MAIN


;in mpr, PIND ; Get whisker input from Port D
;cpi mpr, B6


BUTTON0:
; Load bot id
Expand Down Expand Up @@ -206,46 +208,46 @@ SENDFREEZE:
out PORTB, mpr
call USART_Transmit
jmp MAIN
BUTTON3:
BUTTON2:
; Load bot id
ldi mpr, BotID
;ldi mpr, BotID
; Send bot id
call USART_Transmit
;call USART_Transmit

ldi mpr, 0b00001000
out PORTB, mpr
call USART_Transmit
jmp MAIN
BUTTON4:
;ldi mpr, 0b00000100
;out PORTB, mpr
;call USART_Transmit
;jmp MAIN
;BUTTON4:
; Load bot id
ldi mpr, BotID
;ldi mpr, BotID
; Send bot id
call USART_Transmit
;call USART_Transmit

ldi mpr, 0b00010000
out PORTB, mpr
call USART_Transmit
jmp MAIN
BUTTON5:
;ldi mpr, 0b00010000
;out PORTB, mpr
;call USART_Transmit
;jmp MAIN
;BUTTON5:
; Load bot id
ldi mpr, BotID
;ldi mpr, BotID
; Send bot id
call USART_Transmit
;call USART_Transmit

ldi mpr, 0b00100000
out PORTB, mpr
call USART_Transmit
jmp MAIN
BUTTON6:
;ldi mpr, 0b00100000
;out PORTB, mpr
;call USART_Transmit
;jmp MAIN
;BUTTON6:
; Load bot id
ldi mpr, BotID
;ldi mpr, BotID
; Send bot id
call USART_Transmit
;call USART_Transmit

ldi mpr, 0b01000000
out PORTB, mpr
call USART_Transmit
rjmp MAIN
;ldi mpr, 0b01000000
;out PORTB, mpr
;call USART_Transmit
;rjmp MAIN


; Load bot id
Expand Down
41 changes: 32 additions & 9 deletions Labs/Lab6/ece375-L6_SLAVE.asm
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
.def ilcnt = r18 ; Inner Loop Counter
.def olcnt = r19 ; Outer Loop Counter

.equ WTime = 50 ; Time to wait in wait loop
.equ WTime = 100 ; Time to wait in wait loop
.equ FROZEN = 0b01010101
.equ FREEZE = 0b11111000

Expand All @@ -41,7 +41,7 @@
.equ EngDirL = 6 ; Left Engine Direction Bit

;.equ BotID = ;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)
.equ BotID = 0b00010001;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)
.equ BotID = 0b01111111;(Enter you group ID here (8bits)); Unique XD ID (MSB = 0)

;/////////////////////////////////////////////////////////////
;These macros are the values to make the TekBot Move.
Expand Down Expand Up @@ -141,9 +141,15 @@ USART_INIT:
clr cmd
MAIN:
out PORTB, cmd
ldi waitcnt, 20 ; Wait for 1 second
call Wait
clr cmd
out PORTB, cmd

rjmp MAIN



;***********************************************************
;* Functions and Subroutines
;***********************************************************
Expand Down Expand Up @@ -180,6 +186,7 @@ USART_Receive:
; mov cmd, rec // Do the command
; ============= The Actual Code =============
; if rec == FROZEN:

cpi rec, FROZEN
breq DO_FROZEN
; if state == 0:
Expand All @@ -192,15 +199,22 @@ USART_Receive:

DO_FROZEN:
; wait n
ldi waitcnt, WTime ; Wait for 1 second
out PORTB, rec
ldi mpr, FROZEN
out PORTB, mpr
ldi waitcnt, 500 ; Wait for 1 second
call Wait
clr mpr
out PORTB, mpr
inc numFrozen
cpi numFrozen, $03
breq LOOP_FOREVER
ret
LOOP_FOREVER:
ldi mpr, FROZEN
inc mpr
out PORTB, mpr
ldi waitcnt, 20; Wait
call Wait
rjmp LOOP_FOREVER

GO_STATE0:
Expand All @@ -211,20 +225,29 @@ MY_ID:
ldi state, $01
ret
COMMAND:
mov cmd, rec
ldi state, $00
ldi state, $00
cpi rec, FREEZE
breq DO_FREEZE
out PORTB, rec
ret
DO_FREEZE:
ldi mpr, FROZEN
call USART_Transmit
ret

USART_Transmit:
lds r23, UCSR1A
sbrs r23, UDRE1
cli ; Disable all interrupts
lds tmp, UCSR1A
sbrs tmp, UDRE1
; Load status of USART1
; Loop until transmit data buffer is ready
rjmp USART_Transmit

; Send data
sts UDR1, mpr
; Move data to transmit data buffer
ldi waitcnt, 20 ; Wait for 1 second
call Wait
sei
ret


Expand Down

0 comments on commit 0072ea9

Please sign in to comment.