nrf-server.zig (1155B)
1 const std = @import("std"); 2 const shared = @import("shared"); 3 const pi = @import("pi"); 4 5 const nrf = pi.devices.nrf; 6 const clock = pi.devices.clock; 7 const uart = pi.devices.mini_uart; 8 9 // Server: 10 // CS - 8 11 // CE - 6 12 // 13 // Client: 14 // CS - 7 15 // CE - 5 16 pub fn main() !void { 17 uart.print("creating server\n", .{}); 18 19 const client_addr = 0xE5E5E5E5E5; 20 21 var server_dev: nrf.Device = try .init(.{ 22 .spi_config = .{ 23 .chip_select = .@"0", 24 .pins = .Lower, 25 }, 26 .ce_pin = 6, 27 .int_pin = 23, 28 .payload_size = 4, 29 }); 30 uart.print("initialized server\n", .{}); 31 32 server_dev.set_tx_addr(client_addr); 33 try server_dev.set_rx_addr(0, client_addr); 34 35 const msg = "Hello, World!\r"; 36 37 for (msg) |b| { 38 uart.print("Sending {c}: ", .{b}); 39 40 var buffer: [4]u8 = .{ 0, 0, 0, b }; 41 if (try server_dev.transmit(&buffer, 1000)) { 42 uart.print("transmitted\n", .{}); 43 } else { 44 uart.print("server failed to transmit\n", .{}); 45 continue; 46 } 47 48 clock.delay_ms(10); 49 } 50 51 uart.print("done!\n", .{}); 52 uart.flush(); 53 }