Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
uPython-mirror
Commits
bcc9298e
Commit
bcc9298e
authored
Mar 29, 2014
by
Damien George
Browse files
stmhal: Add TODO's to exti.c; fix delay in lcd.c.
parent
c63f9846
Changes
2
Hide whitespace changes
Inline
Side-by-side
stmhal/exti.c
View file @
bcc9298e
...
...
@@ -66,6 +66,8 @@
// There is also a C API, so that drivers which require EXTI interrupt lines
// can also use this code. See exti.h for the available functions and
// usrsw.h for an example of using this.
//
// TODO Add python method to change callback object.
#define EXTI_OFFSET (EXTI_BASE - PERIPH_BASE)
...
...
@@ -302,6 +304,7 @@ void Handle_EXTI_Irq(uint32_t line) {
if
(
line
<
EXTI_NUM_VECTORS
)
{
exti_vector_t
*
v
=
&
exti_vector
[
line
];
if
(
v
->
callback_obj
!=
mp_const_none
)
{
// TODO need to wrap this in an nlr_buf; really need a general function for this
rt_call_function_1
(
v
->
callback_obj
,
MP_OBJ_NEW_SMALL_INT
(
line
));
}
}
...
...
stmhal/lcd.c
View file @
bcc9298e
#include
<stdio.h>
#include
<string.h>
#include
<stm32f4xx_hal.h>
...
...
@@ -59,8 +60,12 @@
#define LCD_INSTR (0)
#define LCD_DATA (1)
static
void
lcd_delay
(
void
)
{
__asm
volatile
(
"nop
\n
nop"
);
}
static
void
lcd_out
(
int
instr_data
,
uint8_t
i
)
{
HAL_D
elay
(
0
);
lcd_d
elay
();
PYB_LCD_PORT
->
BSRRH
=
PYB_LCD_CS1_PIN
;
// CS=0; enable
if
(
instr_data
==
LCD_INSTR
)
{
PYB_LCD_PORT
->
BSRRH
=
PYB_LCD_A0_PIN
;
// A0=0; select instr reg
...
...
@@ -69,7 +74,7 @@ static void lcd_out(int instr_data, uint8_t i) {
}
// send byte bigendian, latches on rising clock
for
(
uint32_t
n
=
0
;
n
<
8
;
n
++
)
{
HAL_D
elay
(
0
);
lcd_d
elay
();
PYB_LCD_PORT
->
BSRRH
=
PYB_LCD_SCL_PIN
;
// SCL=0
if
((
i
&
0x80
)
==
0
)
{
PYB_LCD_PORT
->
BSRRH
=
PYB_LCD_SI_PIN
;
// SI=0
...
...
@@ -77,7 +82,7 @@ static void lcd_out(int instr_data, uint8_t i) {
PYB_LCD_PORT
->
BSRRL
=
PYB_LCD_SI_PIN
;
// SI=1
}
i
<<=
1
;
HAL_D
elay
(
0
);
lcd_d
elay
();
PYB_LCD_PORT
->
BSRRL
=
PYB_LCD_SCL_PIN
;
// SCL=1
}
PYB_LCD_PORT
->
BSRRL
=
PYB_LCD_CS1_PIN
;
// CS=1; disable
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment