Ik zou willen dat mijn PIC werkt met 4 capacitieve sensors, maar eerst moet ik dit al laten werken met simpel 1 sensor. Het probleem is namelijk dat ik deze niet aan de praat krijg, ik heb het volgende al in c-code gemaakt, maar ik weet niet waar er ergens de fout(en) zich bevindt(en).
Ik vermoed dat mijn registers in orde zijn (voor 1 sensor), maar ben niet zeker van mijn __config.
Ik zit hier nu al een tijd op te zoeken, maar dat helpt mij geen snars vooruit, dus ik hoop van harte dat iemand hier al eerder succes mee had of allensinds mij kan helpen met toch al 1 sensor te laten detecteren.
alvast bedankt
Ik vermoed dat mijn registers in orde zijn (voor 1 sensor), maar ben niet zeker van mijn __config.
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| __CONFIG(INTIO & WDTDIS & PWRTEN & MCLRDIS & UNPROTECT & UNPROTECT & BORDIS & IESODIS & FCMDIS); // gebruik van interne klok van 8MHz #define FOSC 8000000L //variabelen declareren static int timer1count; //__________________INSTELLINGEN_________________________ main() { ANSELH = 0b00000110; // Set PORT AN8 to AN11 as Digital I/O /* Init ADC */ ANSEL = 0b00001010; //AN1 & AN4 analoog, rest is Digitaal. //--poorten TRISA = 0b11111011; //RA1 (C12IN0-) als input, RA2 (C1Out ) output RA5 input (T1CKI) TRISB = 0b00000000; //alles als uitgang van poort B TRISC = 0b00000011; //RC0 (VCC/4) input, RC1 Input, RC4 output (C2OUT) //--interrupt INTE = 0; //disable RA2/INT interrupts GIE = 0; //disable global interupts //--comperatoren CM1CON0= 0b10010100; //AN1011a. CM2CON0= 0b10100000; //AN1011a CM2CON1= 0b00110010; //AN1011a SRCON = 0b11110000; //AN1011a VRCON = 0b10000111; //AN1011a //--timer T1CON = 0b10000111; //geen externe clock, timer aan //--clear timers TMR0 = 0; //clear timer 0 TMR1L = 0; //clear timer 1 low TMR1H = 0; //clear timer 1 high //___________________EEUWIGE LOOP______________________________ while (1 == 1) { if (TMR0 == 255) // vinger gevoeld { timer1count = TMR1L + TMR1H << 8; if (timer1count < 500) // er wordt niet geduwd, JUISTE WAARDE = nagaan met oscilloscoop { PORTB = 0b10000000; // pin 7 aan TMR0 = TMR0--; timer1count = timer1count--; loop(); // 3 seconden vertragen } TMR0 = 0; //clear tellers TMR1L = 0; TMR1H = 0; } } //endelihw } |
Ik zit hier nu al een tijd op te zoeken, maar dat helpt mij geen snars vooruit, dus ik hoop van harte dat iemand hier al eerder succes mee had of allensinds mij kan helpen met toch al 1 sensor te laten detecteren.
alvast bedankt