summaryrefslogtreecommitdiff
path: root/ucoo/hal/frame_buffer
diff options
context:
space:
mode:
authorNicolas Schodet2016-12-21 13:57:08 +0100
committerNicolas Schodet2019-10-09 23:05:51 +0200
commit7514cb3ff409eb12153ce8f03755dd4306f796e6 (patch)
tree0b121db3b9b0b79e01245cf13508434335963257 /ucoo/hal/frame_buffer
parent4738239d53a01be1b90fb6afd427df57fde22b95 (diff)
ucoo/{intf, hal/frame_buffer}: add a way to wait until reload is done
Still to do: use an interrupt to put processor to sleep.
Diffstat (limited to 'ucoo/hal/frame_buffer')
-rw-r--r--ucoo/hal/frame_buffer/ltdc.stm32f4.cc7
-rw-r--r--ucoo/hal/frame_buffer/ltdc.stm32f4.hh2
2 files changed, 9 insertions, 0 deletions
diff --git a/ucoo/hal/frame_buffer/ltdc.stm32f4.cc b/ucoo/hal/frame_buffer/ltdc.stm32f4.cc
index a1e4f47..f80083c 100644
--- a/ucoo/hal/frame_buffer/ltdc.stm32f4.cc
+++ b/ucoo/hal/frame_buffer/ltdc.stm32f4.cc
@@ -83,4 +83,11 @@ Ltdc::layer_setup (int layer, const Surface &surface, int x, int y)
reg::LTDC->SRCR = LTDC_SRCR_VBR;
}
+void
+Ltdc::wait_reload ()
+{
+ while (reg::LTDC->SRCR & LTDC_SRCR_VBR)
+ ;
+}
+
} // namespace ucoo
diff --git a/ucoo/hal/frame_buffer/ltdc.stm32f4.hh b/ucoo/hal/frame_buffer/ltdc.stm32f4.hh
index 72ceda1..9e572c8 100644
--- a/ucoo/hal/frame_buffer/ltdc.stm32f4.hh
+++ b/ucoo/hal/frame_buffer/ltdc.stm32f4.hh
@@ -41,6 +41,8 @@ class Ltdc
void disable ();
/// Setup a layer.
void layer_setup (int layer, const Surface &surface, int x, int y);
+ /// Wait until previous setup is loaded.
+ void wait_reload ();
protected:
int width_, heigth_;
protected: