Dolda2000 GitWeb
/
kokare.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3141564
)
Added ZVD and Triac control.
author
Fredrik Tolf
<fredrik@dolda2000.com>
Fri, 15 Jun 2007 00:43:59 +0000
(
00:43
+0000)
committer
Fredrik Tolf
<fredrik@dolda2000.com>
Fri, 15 Jun 2007 00:43:59 +0000
(
00:43
+0000)
kokare.c
patch
|
blob
|
blame
|
history
diff --git
a/kokare.c
b/kokare.c
index
18379e9
..
81aab66
100644
(file)
--- a/
kokare.c
+++ b/
kokare.c
@@
-36,6
+36,7
@@
char ledc = 0;
/* Timer */
char of = 0;
int oticks = 0;
/* Timer */
char of = 0;
int oticks = 0;
+unsigned long mnow;
/* Pulse counter */
char pstate = 0;
char pval = 0;
/* Pulse counter */
char pstate = 0;
char pval = 0;
@@
-49,7
+50,12
@@
unsigned long tstart;
unsigned long ttime;
unsigned long ttimea = 10000;
/* Zero-cross detector*/
unsigned long ttime;
unsigned long ttimea = 10000;
/* Zero-cross detector*/
+char zok = 0;
+unsigned long ztime;
/* Triac */
/* Triac */
+char trstate = 0;
+char tron = 0;
+unsigned short trdelay = 0;
void init(void)
{
void init(void)
{
@@
-63,7
+69,7
@@
void init(void)
* B3..5 = ISP
* B6..7 = CLK
*/
* B3..5 = ISP
* B6..7 = CLK
*/
- DDRB = 0x
0
0;
+ DDRB = 0x
3
0;
PORTB = 0x07;
PCMSK0 = 0x07;
PCICR = 0x01;
PORTB = 0x07;
PCMSK0 = 0x07;
PCICR = 0x01;
@@
-160,20
+166,17
@@
void ledcycle(void)
void tempcycle(void)
{
void tempcycle(void)
{
- unsigned long now;
-
- now = getticks();
if(tstate == 0) {
if((PIND & 8) && (tlock == 0)) {
PORTD |= 2;
if(tstate == 0) {
if((PIND & 8) && (tlock == 0)) {
PORTD |= 2;
- tstart = now;
+ tstart =
m
now;
tstate = 1;
}
} else if(tstate == 1) {
tstate = 1;
}
} else if(tstate == 1) {
- if(now - tstart > 1000) {
+ if(
m
now - tstart > 1000) {
PORTD &= ~2;
tstate = 0;
PORTD &= ~2;
tstate = 0;
- tstart = now;
+ tstart =
m
now;
}
}
}
}
}
}
@@
-187,6
+190,20
@@
void calcavg(void)
}
}
}
}
+void triaccycle(void)
+{
+ if(trstate == 0) {
+ if(tron && zok && (mnow > ztime + trdelay)) {
+ PORTD |= 1;
+ zok = 0;
+ trstate = 1;
+ }
+ } else if(trstate == 1) {
+ PORTD &= ~1;
+ trstate = 0;
+ }
+}
+
int main(void)
{
int cur;
int main(void)
{
int cur;
@@
-195,10
+212,16
@@
int main(void)
init();
sei();
display(0);
init();
sei();
display(0);
+
+ tron = 1;
+ trdelay = 5000;
+
while(1) {
while(1) {
+ mnow = getticks();
ledcycle();
tempcycle();
calcavg();
ledcycle();
tempcycle();
calcavg();
+ triaccycle();
/*
dsp[0] = bindisp((ttimea & 0xff00) >> 8);
/*
dsp[0] = bindisp((ttimea & 0xff00) >> 8);
@@
-207,6
+230,10
@@
int main(void)
/*
disphex((ttimea & 0xff000) >> 12);
*/
/*
disphex((ttimea & 0xff000) >> 12);
*/
+#if 1
+ /*
+ Temp display
+ */
if(ttimea < 20000) {
display((ttimea / 100) % 100);
dsp[0] |= SEGP;
if(ttimea < 20000) {
display((ttimea / 100) % 100);
dsp[0] |= SEGP;
@@
-215,8
+242,11
@@
int main(void)
} else {
display(ttimea / 1000);
}
} else {
display(ttimea / 1000);
}
-
+#endif
+#if 0
/*
/*
+ Pulse counter display
+ */
cur += pval;
pval = 0;
if(sstate == 2) {
cur += pval;
pval = 0;
if(sstate == 2) {
@@
-233,12
+263,14
@@
int main(void)
} else {
display(cur);
}
} else {
display(cur);
}
- */
+#endif
}
}
ISR(SIG_INTERRUPT0)
{
}
}
ISR(SIG_INTERRUPT0)
{
+ ztime = getticks();
+ zok = 1;
}
ISR(SIG_INTERRUPT1)
}
ISR(SIG_INTERRUPT1)