Hallo,
habe ein miniMODUL-515C der Firma Phytek:
http://www.phytec.de/fileadmin/user_upload/downloads/Manuals/L-230D.pdf
Controller ist der C515C von Infineon drauf. Programmieren tu ich mit
Keil uVision4.
Ich hab mal ein kleines Programm geschrieben, das mit dem Simulator von
Keil auch wunderbar funktioniert, nur beim Testen auf dem Board nicht.
1 | /******************* Text im Quelltext einbinden *********************/
|
2 | #include<stdio.h>
|
3 | #include <reg515c.h>
|
4 |
|
5 | /*************************** Konstanten ******************************/
|
6 |
|
7 | /*********************** globale Variablen ***************************/
|
8 |
|
9 | /************************ Hauptprogramm ******************************/
|
10 |
|
11 | sbit P40 = P4^0; //Definition Port-Pin 4.0
|
12 | sbit P41 = P4^1; //Definition Port-Pin 4.1
|
13 | sbit P42 = P4^2; //Definition Port-Pin 4.2
|
14 | sbit P43 = P4^3; //Definition Port-Pin 4.3
|
15 |
|
16 | int aduwert(char kanal)
|
17 | {
|
18 | ADCON1 = kanal;
|
19 | ADDATL = 0; // ADU starten
|
20 | while(BSY); //auf Wandlungsende warten
|
21 | return((ADDATL>>6)+ADDATH*4);
|
22 | }
|
23 |
|
24 | void main(void)
|
25 | {
|
26 | int analogwert_AN0;
|
27 | float spannung0;
|
28 |
|
29 | ADEX = 0; //interner Wandlungsstart
|
30 | ADM = 0; //keine kontinuierliche Wandlung
|
31 |
|
32 | while(1)
|
33 | {
|
34 | while(BSY);
|
35 | analogwert_AN0 = aduwert(0); //Analogwert einlesen lassen
|
36 |
|
37 |
|
38 | spannung0 = 5 * ((float)analogwert_AN0/1024); //Analogwert umrechnen auf Eingangsspannung bei 5V Referenzspannung
|
39 |
|
40 | if(spannung0 > 1.0)
|
41 | P40 = 0;
|
42 | else
|
43 | P40 = 1;
|
44 |
|
45 | if(spannung0 > 2.0)
|
46 | P41 = 0;
|
47 | else
|
48 | P41 = 1;
|
49 |
|
50 | if(spannung0 > 3.0)
|
51 | P42 = 0;
|
52 | else
|
53 | P42 = 1;
|
54 | }
|
Zum Testen habe ich ein 100k Poti auf +5V und GND gehängt und den
Schleifer auf den Eingang. Ist 100k vielleicht zuviel?
Als Referenzspannung habe ich die Jumper so gelassen wie sie auf dem
Board waren, was bedeutet, dass 5V Versorgungsspannung als Ref-Spg
dient.
Versteht ihr des auch so, dass Pin 80 des Boards An0 ist?
An was könnte es noch liegen?