@@ -4,6 +4,8 @@ use alloc::vec::Vec;
4
4
use utralib:: * ;
5
5
use xous_bio_bdma:: * ;
6
6
7
+ use crate :: arty_rgb;
8
+
7
9
pub struct Repl {
8
10
cmdline : String ,
9
11
do_cmd : bool ,
@@ -49,7 +51,7 @@ impl Repl {
49
51
match cmd. as_str ( ) {
50
52
"mon" => {
51
53
let bio_ss = BioSharedState :: new ( ) ;
52
- let mut rgb = CSR :: new ( utra :: rgb :: HW_RGB_BASE as * mut u32 ) ;
54
+ let mut rgb = CSR :: new ( arty_rgb :: HW_RGB_BASE as * mut u32 ) ;
53
55
let mut count = 0 ;
54
56
let mut quit = false ;
55
57
const TICKS_PER_PRINT : usize = 5 ;
@@ -65,7 +67,7 @@ impl Repl {
65
67
bio_ss. bio. r( utra:: bio_bdma:: SFR_DBG2 ) ,
66
68
bio_ss. bio. r( utra:: bio_bdma:: SFR_DBG3 )
67
69
) ;
68
- rgb. wfo ( utra :: rgb :: OUT_OUT , ( count / TICKS_PER_PRINT ) as u32 ) ;
70
+ rgb. wfo ( arty_rgb :: OUT_OUT , ( count / TICKS_PER_PRINT ) as u32 ) ;
69
71
}
70
72
crate :: platform:: delay ( TICK_MS ) ;
71
73
count += 1 ;
@@ -99,15 +101,14 @@ impl Repl {
99
101
let ld_name = & args[ 0 ] ;
100
102
let hex_code = & args[ 1 ] ;
101
103
102
- // Determine shift from LED name based on the hardware layout.
103
- let shift = match ld_name. as_str ( ) {
104
- "LD0" => 0 ,
105
- "LD1" => 3 ,
106
- "LD2" => 6 ,
104
+ let target_led_field = match ld_name. as_str ( ) {
105
+ "LD0" => arty_rgb:: LD0 ,
106
+ "LD1" => arty_rgb:: LD1 ,
107
+ "LD2" => arty_rgb:: LD2 ,
107
108
_ => {
108
- crate :: println!( "Invalid LD name: {}. Use LD0, LD1, or LD2" , ld_name) ;
109
- self . do_cmd = false ;
109
+ crate :: println!( "Invalid LED name: {}. Use LD0, LD1, LD2." , ld_name) ;
110
110
self . cmdline . clear ( ) ;
111
+ self . do_cmd = false ;
111
112
return ;
112
113
}
113
114
} ;
@@ -126,13 +127,12 @@ impl Repl {
126
127
let b_msb = color & 0x000080 ;
127
128
let bgr_val = ( b_msb >> 6 ) | ( g_msb >> 13 ) | ( r_msb >> 23 ) ;
128
129
129
- let mut rgb = CSR :: new ( utra:: rgb:: HW_RGB_BASE as * mut u32 ) ;
130
- let new_state = bgr_val << shift;
130
+ let mut rgb = CSR :: new ( arty_rgb:: HW_RGB_BASE as * mut u32 ) ;
131
131
132
- rgb. rmwf ( utra :: rgb :: OUT_OUT , rgb . r ( utra :: rgb :: OUT ) | new_state ) ;
132
+ rgb. rmwf ( target_led_field , bgr_val ) ;
133
133
134
134
crate :: println!(
135
- "Set {} to BGR value 0b{:03b} (from hex {}). Other LEDs are off. " ,
135
+ "Set {} to BGR value 0b{:03b} (from hex {})." ,
136
136
ld_name,
137
137
bgr_val,
138
138
hex_code
@@ -150,8 +150,8 @@ impl Repl {
150
150
crate :: println!(
151
151
" mon - Monitors the program counters of the BIO cores."
152
152
) ;
153
- crate :: println!( " blinky <LD> <RGB_HEX> - Sets an LED to a color (turns others off) ." ) ;
154
- crate :: println!( " LD: LD1, LD2 , or LD3 " ) ;
153
+ crate :: println!( " blinky <LD> <RGB_HEX> - Sets an LED to a color." ) ;
154
+ crate :: println!( " LD: LD0, LD1 , or LD2 " ) ;
155
155
crate :: println!( " RGB_HEX: e.g., ff0000 (red), 00ff00 (green), 0000ff (blue)" ) ;
156
156
}
157
157
0 commit comments