Shibbius
05.01.2006, 17:52
Hallo!
In einem Projekt für die Schule benötigen wir den PIC12F675 zum Abgleich einer Messbrücke, dazu wird ein digitales Potentiometer damit angesteuert. Er hat einen 10 Bit ADC und zum Programmieren verwende ich den PIC-C Compiler, weil ich mich mit Assembler nicht wirklich auskenne. Weil ich mich mit PICs selber noch nicht auskenne habe ich erst einmal ein paar simple Programme geschrieben um zu testen wie was ungefähr funktioniert. Und da hänge ich jetzt bei dem ADC.
Als Takt verwende ich den internen RC-Oszillator und sonst gibt es meines Wissens nichts mehr bei der Beschaltung also vermute ich den Fehler im Programm.
#include <12F675.h>
#device ADC=10
#include <STDLIB.H>
#fuses INTRC_IO, NOWDT, NOMCLR, NOPUT, NOBROWNOUT, NOCPD, NOPROTECT
int wert;
init()
{
setup_adc_ports(AN0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(0x09);
}
void main()
{
init();
while (1)
{
wert=Read_ADC();
if (wert<=0x1FF)
Output_low(PIN_A2);
else
Output_high(PIN_A2);
}
}
Meine Probleme sind, dass ich nicht genau weiß, welche Fuses ich brauche und was der Rückgabewert von Read_ADC() ist. In der Hilfe steht eine 8 oder 16 Bit Integer, abhängig von #device ADC= . Weiters ist dann noch ein Tabelle in der der Bereich von 0-3FF steht.
Wenn ich dieses Programm auf den PIC brenne und die Schaltung teste, tut sich überhaupt nichts.
Ich hoffe ihr könnt mir helfen und bedanke mich schon im Voraus
mfg Shibbius
In einem Projekt für die Schule benötigen wir den PIC12F675 zum Abgleich einer Messbrücke, dazu wird ein digitales Potentiometer damit angesteuert. Er hat einen 10 Bit ADC und zum Programmieren verwende ich den PIC-C Compiler, weil ich mich mit Assembler nicht wirklich auskenne. Weil ich mich mit PICs selber noch nicht auskenne habe ich erst einmal ein paar simple Programme geschrieben um zu testen wie was ungefähr funktioniert. Und da hänge ich jetzt bei dem ADC.
Als Takt verwende ich den internen RC-Oszillator und sonst gibt es meines Wissens nichts mehr bei der Beschaltung also vermute ich den Fehler im Programm.
#include <12F675.h>
#device ADC=10
#include <STDLIB.H>
#fuses INTRC_IO, NOWDT, NOMCLR, NOPUT, NOBROWNOUT, NOCPD, NOPROTECT
int wert;
init()
{
setup_adc_ports(AN0_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_counters(RTCC_INTERNAL,RTCC_DIV_2);
setup_timer_1(T1_DISABLED);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
set_tris_a(0x09);
}
void main()
{
init();
while (1)
{
wert=Read_ADC();
if (wert<=0x1FF)
Output_low(PIN_A2);
else
Output_high(PIN_A2);
}
}
Meine Probleme sind, dass ich nicht genau weiß, welche Fuses ich brauche und was der Rückgabewert von Read_ADC() ist. In der Hilfe steht eine 8 oder 16 Bit Integer, abhängig von #device ADC= . Weiters ist dann noch ein Tabelle in der der Bereich von 0-3FF steht.
Wenn ich dieses Programm auf den PIC brenne und die Schaltung teste, tut sich überhaupt nichts.
Ich hoffe ihr könnt mir helfen und bedanke mich schon im Voraus
mfg Shibbius