Schönen guten Morgen,
Also ich habe jetzt versucht ein Programm zu schreiben, sodass ich mit
dem AD- Wandler des PIc16F887 arbeiten kann. Es wäre nett wenn ihr mal
einen Blick drauf werfen könnt und sagen könnt ob mir iwas fehlt oder ob
iwas falsch ist ( halt nen kleines Feedback).
Hier der Code:
#include <pic16f887.h>
void main (void);
{
int a,count,i;
count=0;
setup_ports( AN0 );
setup_adc( ADC_CLOCK_DIV_8 );
set_adc_channel( 0 );
delay_ms (20);
TRISB=0x00;
LATB=0x00;
while(1)
count++;
a=read_ADC();
delay_us(10)
if (adc_wert >= 255)
{
LATBbits.LATB0=1;
}
else
{
LATB=0x00;
}
}
In dem Programm will ich das der Pic den Analogen Wert über Pin A0
ausließt und bei einem bestimmten Fall "hier 255" ein Signal auf den Pin
B0 gibt.
So dann habe ich noch ein weiteres Problem. Unzwar shabe ich das
Programm in MPLAB geschrieben und will das Compilieren aber es geht
nicht. Habe es in MPLAB ausprobiert da geht es nicht und in nootpad habe
ichs auch eingefügt und versucht es über eine Makefile zu compilieren
ging auch nicht ( da denk ich aber habe ich die falsche makefile für ).
Vlt habt ihr ja ne vernünftige makefile oder ne idee woran es liegt.
Mfg EGGI
EGGI schrieb:> a=read_ADC();> delay_us(10);
Mal zu den bereits gemachten Anmerkungen: Es gibt ein Flag, welches
einem sagt wann die Wandlung fertig ist. Warte keine Zeitspanne ab bis
die Wandlung fertig ist sondern warte bis der Wandler sagt, dass er
fertig ist.
@ dsgasdfg
Die Makros sind in der Headerdatei des Pics definiert, die Funktionen
muss man, wenn ich mich recht entsinne, schon selbst definieren ;)
@Michael okey dann mach ich das mal raus mit dem delay.
Okey das Problem ist, ich habe noch nicht sehr viel Ahnung von dem was
ich da tue xD habe da ein tuturial wo das erklärt wurde einigermaßen. Oh
habe gerade noch was gefunden was dort drin steht.
-->
#device ADC=8
#fuses HS,NOPROTECT,NOWDT
#use delay(clock=20000000)
#use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
Ach ich stell mal das ganze tut rein könnter selber sehen :).
versteh schon langsam was da was bedeutet in dem Programm weiß aber
nicht genau wie ich da was defenieren muss und was ich einfach drauf los
schreiben kann.
Gruss
ich habe das jetz mal so programmiert wie du es gesagt hast. Klappt
immer noch nicht :( und wie defeniere ich die makros? Wäre nett wenn ihr
mir helfen könntet ich bin noch nicht so der hellste ^^ in der
Geschichte mit dem programmieren. Bin noch nicht all so lange in der
Materie. Was fehlt mir und wie weiß ich bzw kann ich mir aneignen wie
ich was defeniere? in den tuturials die ich bis jetz gesehen habe und
bearbeitet habe, dort habe ich nicht wirklich was darüber gefunden.
Ich hoffe ihr habt Tipps oder kleine Hilfestellungen für mich sodas ich
das beweltigt bekomme.
es wäre nicht schlecht die Fehler die der Comiler ausgibt hier zu
posten. Ansonsten müssten wir ja blindlings raten was für Fehler dein
Compiler ausgibt ...
Das kann ich jetz leider erst machen wenn ich wieder zu Hause bin. Werd
ich sofort posten was das für Compiler Fehler sind.
Aber mit dem Programm wie es jetzt besteht kann man sagenes könnte
laufen? Oder fehlen da irgentwelche defenierungen oder sonst iwas?
Mfg EGGI
EGGI schrieb:> Kann mir denn keiner Helfen :( schade...
Liegt vielleicht daran, dass du es den Helfern besonders schwer machst.
Beitrag "Re: AD- Wandlung Programm fertig aber auch richtig?"
* __C_Tutorial-12012002.doc (162 Bytes, 4 Downloads) | anzeigen
.doc ???
162 Bytes ???
Da ist doch was faul!
>> und wie definiere ich die Makros?
Diese?
> #device ADC=8> #fuses HS,NOPROTECT,NOWDT> #use delay(clock=20000000)> #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
Das sind keine regulären C-Makros sondern compilerspezifische
Erweiterungen.
Man kann nur raten, welchen Compiler das "Tutorial" verwendet.
Es sieht nach CCS C Compiler aus.
http://www.ccsinfo.com/content.php?page=compexamples
Du verwendest den MPLAB C Compiler. Der hat andere Befehle für die
gleichen Zwecke. Ich würde im Compiler User Manual unter dem Stichwort
#pragma nachsehen.
Stefan B. schrieb:> .doc ???> 162 Bytes ???> Da ist doch was faul!
Der _ deutet auf eine temporäre Datei hin in der z.B. die Änderungen
mitgeschrieben werden oder so ein Quatsch. Es ist auf jeden Fall nicht
das Orginaldokument.
so habe ich das Dokument von ner Arbeitskolegin bekommen.
Wie muss ich die #pramas defenieren? Also wie weiß ich was ich da
schreiben muss? Hab da keine Ahnung von :(. Steht sowas auch iwie in nem
Tuturial? Weil ich finde das allerdings auch nich bei MPLAB dieses "
USER MANUAL "
Wenn ich das garnicht hin bekomme mit dem MPLAB. Dann werde ich mir
diesen CCS Compiler beschaffen
Hier der Fehler:
Executing: "C:\Programme\HI-TECH Software\PICC\9.70\bin\picc.exe"
-owaage.cof -mwaage.map --summary=default --output=default --chip=16F877
-P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist
"--errformat=Error [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s"
"--warnformat=Warning [%n] %f; %l.%c %s"
(1273) Omniscient Code Generation ist in der Lite Version nicht
verfügbar (warning)
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.70
Copyright (C) 2009 Microchip Technology Inc.
Error [939] ; . keine Dateien angegeben
********** Build failed! **********
http://pic-projekte.de/pic_c.html#konfpic
Hier steht noch ein wenig was über pragma aber nicht viel xD mir ist
geraed eingefallen ich habe zu Hause noch iwo nen Assembler Lehrgang rum
liegen. Ich schau da mal wie ich da damals in Assemlber die konfig
geschrieben habe. Vlt macht es dann klick und es fällt mir leichter das
in C auch hin zu bekommen.
Bald hast du alle C Compiler durch, die es für PIC gibt!
>>> Programm in MPLAB geschrieben und will das Compilieren aber es geht>> Tutorial sieht nach CCS C Compiler aus.> HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode) V9.70
Willst du nicht noch die anderen fünf PIC C Compiler ausprobieren? Mal
sehen wann Andreas die Farben bei den >>> aus gehen ;-)
http://www.google.de/search?q=HI-TECH+C+Compiler+manual
ja das Problem ist nur das ich MPLAB, den PIC, HI-Tech Compiler gestellt
bekommen habe. Darum versuche ich es damit, aber wenn es nicht klappt,
dann muss ich auf was anders zurück greifen. Das dumme ist ich habe dazu
nen Ordner bekommen wo nur drin steht das ich in C Programmieren kann in
MPLAB.