16f690 met capacitieve sensors

Pagina: 1
Acties:
  • 265 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
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.

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

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zaterdag 27 maart 2010 @ 22:59:
Het probleem is namelijk dat ik deze niet aan de praat krijg
Wat krijg je niet aan de praat? Krijg je foutmeldingen? Crashed het? Doet het niet (precies) wat je wil... of... :?
Verwijderd schreef op zaterdag 27 maart 2010 @ 22:59:
ik heb het volgende al in c-code gemaakt, maar ik weet niet waar er ergens de fout(en) zich bevindt(en).
Welke fout(en)?
Verwijderd schreef op zaterdag 27 maart 2010 @ 22:59:
Ik zit hier nu al een tijd op te zoeken, maar dat helpt mij geen snars vooruit
Staren naar code haalt geen kont uit. Je moet (leren) debuggen. Debuggen: Hoe doe ik dat?
Verwijderd schreef op zaterdag 27 maart 2010 @ 22:59:
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.
We zitten hier niet om jouw code te debuggen of te gaan gissen wat er mis is met je code; we zitten hier ook niet om te gaan raden naar wat je probleem überhaupt is. We verwachten dat je zelf al een aantal zaken doet voordat je een topic opent; dat is (o.a) een duidelijke omschrijving van het probleem, een duidelijk overzicht van wat je al hebt geprobeerd/gezocht/gevonden en wat daar dan weer niet aan werkt(e) of waarom dat niet voldeed aan je wensen etc. en dan verwachten we ook nog dat je zélf debugged zodat je op z'n minst kunt zeggen: op regel X gebeurt Y maar ik verwachtte Z. Dan heb je een concrete vraag waar we wat mee kunnen; hier kunnen we echter niets mee.

Neem onze Quickstart even door om te zien wat we hier van een topicstart verwachten a.u.b. (en da's niet voor het eerst dat we je daar op wijzen).

[ Voor 3% gewijzigd door RobIII op 28-03-2010 13:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Dit topic is gesloten.