Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
A
avrcte
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
leger
avrcte
Compare revisions
68d3ee2dbae11494605aff2e2c54698d4185f756 to master
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
leger/avrcte
Select target project
No results found
master
Select Git revision
Swap
Target
leger/avrcwa
Select target project
leger/avrcte
leger/avrcwa
2 results
68d3ee2dbae11494605aff2e2c54698d4185f756
Select Git revision
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
vanne.c
+53
-24
53 additions, 24 deletions
vanne.c
vanne.h
+5
-4
5 additions, 4 deletions
vanne.h
with
58 additions
and
28 deletions
vanne.c
View file @
13860ec2
...
...
@@ -28,10 +28,11 @@ void vanne_init()
vanne_internal_status
=
EV_MID
;
}
uint8_t
vanne_internal_step_close
(
uint16_t
d
)
uint8_t
vanne_internal_step_close
(
uint16_t
d
,
uint8_t
force
)
{
if
(
vanne_internal_status
==
EV_CLOSED
)
return
1
;
if
(
!
force
)
if
(
vanne_internal_status
==
EV_CLOSED
)
return
1
;
if
(
d
<
VANNE_ACTION_LIMIT
)
return
0
;
...
...
@@ -45,8 +46,9 @@ uint8_t vanne_internal_step_close(uint16_t d)
VANNE_CMD_PORT
.
OUTSET
=
VANNE_CMD_CLOSE_bm
;
for
(
k
=
0
;
k
<
d
;
k
++
)
_delay_ms
(
1
);
if
(
!
(
VANNE_SENSOR_PORT
.
IN
&
VANNE_SENSOR_CLOSE_bm
))
vanne_internal_status
=
EV_CLOSED
;
if
(
!
force
)
if
(
!
(
VANNE_SENSOR_PORT
.
IN
&
VANNE_SENSOR_CLOSE_bm
))
vanne_internal_status
=
EV_CLOSED
;
VANNE_CMD_PORT
.
OUTCLR
=
VANNE_CMD_CLOSE_bm
;
if
(
vanne_internal_status
==
EV_CLOSED
)
...
...
@@ -54,10 +56,11 @@ uint8_t vanne_internal_step_close(uint16_t d)
return
0
;
}
uint8_t
vanne_internal_step_open
(
uint16_t
d
)
uint8_t
vanne_internal_step_open
(
uint16_t
d
,
uint8_t
force
)
{
if
(
vanne_internal_status
==
EV_OPENED
)
return
1
;
if
(
!
force
)
if
(
vanne_internal_status
==
EV_OPENED
)
return
1
;
if
(
d
<
VANNE_ACTION_LIMIT
)
return
0
;
...
...
@@ -71,8 +74,9 @@ uint8_t vanne_internal_step_open(uint16_t d)
VANNE_CMD_PORT
.
OUTSET
=
VANNE_CMD_OPEN_bm
;
for
(
k
=
0
;
k
<
d
;
k
++
)
_delay_ms
(
1
);
if
(
!
(
VANNE_SENSOR_PORT
.
IN
&
VANNE_SENSOR_OPEN_bm
))
vanne_internal_status
=
EV_OPENED
;
if
(
!
force
)
if
(
!
(
VANNE_SENSOR_PORT
.
IN
&
VANNE_SENSOR_OPEN_bm
))
vanne_internal_status
=
EV_OPENED
;
VANNE_CMD_PORT
.
OUTCLR
=
VANNE_CMD_OPEN_bm
;
if
(
vanne_internal_status
==
EV_OPENED
)
...
...
@@ -80,7 +84,7 @@ uint8_t vanne_internal_step_open(uint16_t d)
return
0
;
}
uint8_t
vanne_step_close
(
uint16_t
d
)
uint8_t
vanne_step_close
(
uint16_t
d
,
uint8_t
force
)
{
uint16_t
steps
=
d
/
(
d
/
101
+
1
);
uint16_t
k
;
...
...
@@ -88,16 +92,16 @@ uint8_t vanne_step_close(uint16_t d)
for
(
k
=
0
;
k
<
d
;
k
+=
steps
)
{
if
(
k
+
steps
<=
d
)
ret
=
vanne_internal_step_close
(
steps
);
ret
=
vanne_internal_step_close
(
steps
,
force
);
else
ret
=
vanne_internal_step_close
(
d
-
k
);
ret
=
vanne_internal_step_close
(
d
-
k
,
force
);
if
(
ret
)
return
ret
;
}
return
ret
;
}
uint8_t
vanne_step_open
(
uint16_t
d
)
uint8_t
vanne_step_open
(
uint16_t
d
,
uint8_t
force
)
{
uint16_t
steps
=
d
/
(
d
/
101
+
1
);
uint16_t
k
;
...
...
@@ -105,9 +109,9 @@ uint8_t vanne_step_open(uint16_t d)
for
(
k
=
0
;
k
<
d
;
k
+=
steps
)
{
if
(
k
+
steps
<=
d
)
ret
=
vanne_internal_step_open
(
steps
);
ret
=
vanne_internal_step_open
(
steps
,
force
);
else
ret
=
vanne_internal_step_open
(
d
-
k
);
ret
=
vanne_internal_step_open
(
d
-
k
,
force
);
if
(
ret
)
return
ret
;
}
...
...
@@ -118,29 +122,54 @@ void vanne_close()
{
uint16_t
k
;
for
(
k
=
0
;
k
<
1000
;
k
++
)
if
(
vanne_internal_step_close
(
10
))
if
(
vanne_internal_step_close
(
10
,
0
))
break
;
vanne_internal_status
=
EV_CLOSED
;
}
void
vanne_
open
()
void
vanne_
force_close
()
{
uint16_t
k
;
for
(
k
=
0
;
k
<
1000
;
k
++
)
if
(
vanne_internal_step_
open
(
10
))
if
(
vanne_internal_step_
close
(
10
,
1
))
break
;
vanne_internal_status
=
EV_CLOSED
;
}
void
vanne_
vidange
()
void
vanne_
open
()
{
uint16_t
k
;
vanne_close
();
for
(
k
=
0
;
k
<
1000
;
k
++
)
if
(
vanne_internal_step_open
(
10
))
if
(
vanne_internal_step_open
(
10
,
0
))
break
;
vanne_internal_status
=
EV_OPENED
;
}
void
vanne_vidange
()
{
uint16_t
kclose
;
uint16_t
kopen
;
vanne_close
();
for
(
kopen
=
0
;
kopen
<
1000
;
kopen
++
)
if
(
vanne_internal_step_open
(
10
,
0
))
break
;
for
(
kclose
=
0
;
kclose
<
1000
;
kclose
++
)
if
(
vanne_internal_step_close
(
10
,
0
))
break
;
uint8_t
kmin
;
if
(
kopen
<
900
)
kmin
=
kopen
/
2
;
else
{
if
(
kclose
<
900
)
kmin
=
kclose
/
2
;
else
kmin
=
50
;
}
uint16_t
k2
=
0
;
for
(
k2
=
0
;
k2
<
k
/
2
;
k2
++
)
if
(
vanne_internal_step_open
(
10
))
for
(
k2
=
0
;
k2
<
k
min
;
k2
++
)
if
(
vanne_internal_step_open
(
10
,
1
))
break
;
}
///[[[end]]]
...
...
This diff is collapsed.
Click to expand it.
vanne.h
View file @
13860ec2
...
...
@@ -44,11 +44,12 @@ typedef enum state_ev
extern
volatile
ev_state_t
vanne_internal_status
;
void
vanne_init
();
uint8_t
vanne_internal_step_close
(
uint16_t
d
);
uint8_t
vanne_internal_step_open
(
uint16_t
d
);
uint8_t
vanne_step_close
(
uint16_t
d
);
uint8_t
vanne_step_open
(
uint16_t
d
);
uint8_t
vanne_internal_step_close
(
uint16_t
d
,
uint8_t
force
);
uint8_t
vanne_internal_step_open
(
uint16_t
d
,
uint8_t
force
);
uint8_t
vanne_step_close
(
uint16_t
d
,
uint8_t
force
);
uint8_t
vanne_step_open
(
uint16_t
d
,
uint8_t
force
);
void
vanne_close
();
void
vanne_force_close
();
void
vanne_open
();
void
vanne_vidange
();
#endif
...
...
This diff is collapsed.
Click to expand it.
Prev
1
2
Next