Rust-for-Arduboy/Project/game/src/lib.rs

40 lines
1,009 B
Rust
Raw Normal View History

2023-08-06 18:14:49 +02:00
#![no_std]
#![allow(non_upper_case_globals)]
2023-08-06 18:14:49 +02:00
//Include the Arduboy Library
#[allow(unused_imports)]
use arduboy_rust::prelude::*;
2023-09-18 16:24:18 +02:00
use arduboy_tone::arduboy_tone_pitch::*;
#[allow(dead_code)]
const arduboy: Arduboy2 = Arduboy2::new();
2023-09-18 16:24:18 +02:00
const sound: ArduboyTones = ArduboyTones::new();
2023-08-06 18:14:49 +02:00
// Progmem data
// dynamic ram variables
2023-08-06 18:14:49 +02:00
// The setup() function runs once when you turn your Arduboy on
#[no_mangle]
pub unsafe extern "C" fn setup() {
// put your setup code here, to run once:
2023-09-04 09:22:04 +02:00
arduboy.begin();
2023-09-12 18:52:18 +02:00
arduboy.set_frame_rate(30);
arduboy.clear();
2023-09-18 16:24:18 +02:00
sound.volume_mode(VOLUME_ALWAYS_NORMAL);
2023-08-06 18:14:49 +02:00
}
2023-08-06 18:14:49 +02:00
// The loop() function repeats forever after setup() is done
#[no_mangle]
#[export_name = "loop"]
pub unsafe extern "C" fn loop_() {
// put your main code here, to run repeatedly:
2023-09-04 09:22:04 +02:00
if !arduboy.next_frame() {
return;
}
2023-09-18 16:24:18 +02:00
sound.tone3(NOTE_C3, 500, NOTE_D3, 250, NOTE_E3, 1000);
delay(2000);
sound.tone2(NOTE_C3, 500, NOTE_D3, 250);
delay(2000);
2023-09-04 09:22:04 +02:00
arduboy.display();
2023-08-06 18:14:49 +02:00
}