Beste medetweakers,
Zet aub je 'beginners'-bril op, want dat is wat ik ben. Ik ken C net twee weekjes en programmeer in MPLAB IDE v7.50
. De microcontroller is een USB PIC18F4550 met als codeloader de PICDEM FS USB Tool.
Afijn, allemaal mooi en aardig. Ik heb de microcontroller eerst binair laten optellen door de 10bits ADC te vertalen naar een rij van 10 LEDs. De sensor simuleerde ik met behulp van een 10K potmeter.
Vraag 1: op de een of andere manier ging dit meteen goed, terwijl ik geen range specificeerde! Hij telde helemaal tot de max en netjes via de binaire volgorde. Is dit omdat hij automatisch 5V spanningsverschil als 10bits resolutie pakt?
Anyway, de programmeervraag. Ik heb de volgende code:
Dat build en werkt prima en als ik de acceleratiesensor beweeg gaan de LEDs (A en
bij de verschillende assen netjes even aan.
Nu wil ik gewoon die waarde zien in een soort van I/O Window? Een watch window op die variabele, maar dat bied deze software niet. Ik had het wel met de IAR Launcher en C-SPY (maar die PIC kende ik heel slecht). Kan iemand een paar gouden tips geven?
Zet aub je 'beginners'-bril op, want dat is wat ik ben. Ik ken C net twee weekjes en programmeer in MPLAB IDE v7.50
Afijn, allemaal mooi en aardig. Ik heb de microcontroller eerst binair laten optellen door de 10bits ADC te vertalen naar een rij van 10 LEDs. De sensor simuleerde ik met behulp van een 10K potmeter.
Vraag 1: op de een of andere manier ging dit meteen goed, terwijl ik geen range specificeerde! Hij telde helemaal tot de max en netjes via de binaire volgorde. Is dit omdat hij automatisch 5V spanningsverschil als 10bits resolutie pakt?
Anyway, de programmeervraag. Ik heb de volgende code:
code:
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
| #define Blue PORTBbits.RB0
#define White PORTCbits.RC0
void main(void) //Start programma
{
int ResultX;
int ResultY;
TRISA = 0x0f; //Port A input
TRISB = 0x00; //Port B output
TRISC = 0x00; //Port C output
ADCON1 = 0x07; //Portconfig: AN0 analog, other i/o digital, Vref- = Vss, Vref+ = Vdd
ADCON2 = 0b00111010; //Result left justified, aq time = 20 Tad, conversion clock = Fosc/32
while(1)
{
ADCON0 = 0x01; //Channel 0 (A0), not started, ADC ON
Delay10TCYx(5); //Delay for 50TCY
ADCON0bits.GO = 1; //Start conversion
while(ADCON0bits.GO == 1); //Wait for completion
ResultX = ADRESH; //Read result, 8 MSBs
if(ResultX > 74){
Blue = 1;
}
else{Blue = 0;}
printf("ResultX equals %d \n", ResultX);
ADCON0 = 0x05; //Channel 1 (A1), not started, ADC ON
Delay10TCYx(5); //Delay for 50TCY
ADCON0bits.GO = 1; //Start conversion
while(ADCON0bits.GO == 1); //Wait for completion
ResultY = ADRESH; //Read result, 8 MSBs
if(ResultY > 84){
White = 1;
}
else{White = 0;}
printf("ResultY equals %d \n", ResultY);
}
} |
Dat build en werkt prima en als ik de acceleratiesensor beweeg gaan de LEDs (A en
Nu wil ik gewoon die waarde zien in een soort van I/O Window? Een watch window op die variabele, maar dat bied deze software niet. Ik had het wel met de IAR Launcher en C-SPY (maar die PIC kende ik heel slecht). Kan iemand een paar gouden tips geven?
De meeste mensen deugen!