Dolda2000 GitWeb
/
kokare.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
BSDified Makefile.
[kokare.git]
/
kokare.c
diff --git
a/kokare.c
b/kokare.c
index
6635747
..
f63c642
100644
(file)
--- a/
kokare.c
+++ b/
kokare.c
@@
-2,14
+2,14
@@
#include <avr/interrupt.h>
#include <inttypes.h>
#include <avr/interrupt.h>
#include <inttypes.h>
-#define SEGA
128
-#define SEGB
64
-#define SEGC
4
-#define SEGD
16
-#define SEGE
32
-#define SEGF
2
-#define SEGG
1
-#define SEGP 8
+#define SEGA
4
+#define SEGB
2
+#define SEGC
1
+#define SEGD
32
+#define SEGE
64
+#define SEGF
16
+#define SEGG
8
+#define SEGP
12
8
uint8_t font[16] = {
SEGA | SEGB | SEGC | SEGD | SEGE | SEGF,
uint8_t font[16] = {
SEGA | SEGB | SEGC | SEGD | SEGE | SEGF,
@@
-34,24
+34,24
@@
uint8_t dsp[2] = {0, 0};
char leda = 0;
char ledc = 0;
/* Timer */
char leda = 0;
char ledc = 0;
/* Timer */
-char of = 0;
-int oticks = 0;
+
volatile
char of = 0;
+
volatile
int oticks = 0;
unsigned long mnow;
/* Pulse counter */
unsigned long mnow;
/* Pulse counter */
-char pstate = 0;
+
volatile
char pstate = 0;
char pval = 0;
/* Switch */
char pval = 0;
/* Switch */
-char sstate = 0;
+
volatile
char sstate = 0;
int stime = 0;
/* Temp sensor */
int stime = 0;
/* Temp sensor */
-char tstate = 0;
-char tlock = 0;
+
volatile
char tstate = 0;
+
volatile
char tlock = 0;
unsigned long tstart;
unsigned long ttime;
unsigned long ttimea = 10000;
char tavgok = 0;
/* Zero-cross detector*/
unsigned long tstart;
unsigned long ttime;
unsigned long ttimea = 10000;
char tavgok = 0;
/* Zero-cross detector*/
-char zok = 0;
+
volatile
char zok = 0;
unsigned long ztime;
/* Triac */
char trstate = 0;
unsigned long ztime;
/* Triac */
char trstate = 0;
@@
-293,6
+293,17
@@
int main(void)
#endif
#if 0
/*
#endif
#if 0
/*
+ * ZVD debug
+ */
+ if(zok) {
+ if(++cur > 99)
+ cur = 0;
+ display(cur);
+ zok = 0;
+ }
+#endif
+#if 0
+ /*
Phony Triac control
*/
if(pval != 0) {
Phony Triac control
*/
if(pval != 0) {
@@
-309,6
+320,10
@@
int main(void)
tron = !tron;
sstate = 0;
}
tron = !tron;
sstate = 0;
}
+ if(tron)
+ dsp[1] |= SEGP;
+ else
+ dsp[1] &= ~SEGP;
#endif
#if 0
/*
#endif
#if 0
/*
@@
-330,6
+345,8
@@
int main(void)
} else {
display(cur);
}
} else {
display(cur);
}
+ if(PINB & 4)
+ dsp[1] |= SEGP;
#endif
}
}
#endif
}
}
@@
-363,22
+380,22
@@
ISR(SIG_OVERFLOW1)
ISR(SIG_PIN_CHANGE0)
{
ISR(SIG_PIN_CHANGE0)
{
- if((sstate == 0) &
((PINB & 1) == 0
)) {
+ if((sstate == 0) &
& !(PINB & 4
)) {
stime = oticks;
sstate = 1;
}
stime = oticks;
sstate = 1;
}
- if((sstate == 1) &
((PINB & 1) == 1
)) {
+ if((sstate == 1) &
& (PINB & 4
)) {
stime = oticks - stime;
sstate = 2;
}
if(pstate == 0) {
if((PINB & 2) == 0) {
pstate = 1;
stime = oticks - stime;
sstate = 2;
}
if(pstate == 0) {
if((PINB & 2) == 0) {
pstate = 1;
- } else if((PINB &
4
) == 0) {
+ } else if((PINB &
1
) == 0) {
pstate = 2;
}
} else if(pstate == 1) {
pstate = 2;
}
} else if(pstate == 1) {
- if((PINB &
4
) == 0) {
+ if((PINB &
1
) == 0) {
pval++;
pstate = 3;
} else {
pval++;
pstate = 3;
} else {
@@
-392,7
+409,7
@@
ISR(SIG_PIN_CHANGE0)
pstate = 0;
}
} else {
pstate = 0;
}
} else {
- if((PINB & 2) && (PINB &
4
))
+ if((PINB & 2) && (PINB &
1
))
pstate = 0;
}
}
pstate = 0;
}
}