PIC 16F84A mit TCS230 ansteuern

Persönliche Seite #728747
des ding wandelt licht in eine frequenz um
also wirst du schonmal einen frequenzzähler benötigen (schau mal bei 
sprut)

und als weiteren tip empfehle ich das studium des datenblatts und die 
suche nach app-notes

ich weiss jetzt net wie gross der code für den frequenzzähler is aber
könnte eng werden je nach dem wieviel schnickschnack du noch auf dem 
display anzeigen lassen willst (300 worte code für display)
#743964
@ Jörg

Du solltest Deine Fragen etwas konkreter formulieren, sonst kannst Du 
nicht geholfen werden (frei nach Verona...)

Was ist Dir nicht ganz klar?
Beherrschst Du PIC-Assembler?
Hast Du das Datenblatt des PIC16F84A studiert (weshalb überhaupt DER 
Typ, er ist ziemlich veraltet)?
Ist Dir klar, wie der Sensor angesteuert werden muss?
#744016
Also, Schritt für Schritt:

o Du hast MPLAB?

o Willst Du in Assembler oder C oder... programmieren?

o Hast Du einen Programmer oder Debugger?

o Welchen?

o Nochmals: muss es der PIC16F84A sein? Weshalb?

o Mit welchen PICs hast Du Dich in den letzten drei Jahren beschäftigt?

o Was hast Du damit gemacht?

o Hast Du das Datenblatt des PIC16F84A studiert?

o Ist Dir klar, wie der Sensor angesteuert werden muss?
Gast #907556
Also ich würde den Tnread gerne noch fortführen.

Allerdings verwende ich keinen PIC 16F84A (will auch nichts ausgeben) 
sondern ATMEGA8, das Programm soll in C geschrieben werden

1. "Wie muss ich ein und Ausgänge setzen?"

Datenblatt sagt folgendes:
S0 und S1 zum Frequenz teilen, 100% -> beide High
MIt S2 und S3 wählst du den Farbfilter, beide High wäre dann die Reihe 
Dioden mit dem roten Farbfilter.

negierten OE auf Masse, Rest dürfte Klar sein

2. Das Programm in C

Hier hab ich auch meine Probleme und hätte mir Hilfe erhofft. Timer ist 
mir aus dem Datenblatt natürlich ein Begriff, habe aber keine Ahnung wie 
ich  ihn als Counter nutze, ansteuere oder das richtige register wähle.
Das Programm als Structogramm ist eiglich ganz einfach. Timer Starten 
bei der postiven Flanke und stoppen bei der negativen. (oder Impulse auf 
gewisste Zeit, bzw. benötigte Zeit auf bestimmte Anzahl von impulsen)
#911168
16bit Timer frei laufen lassen und Capture-Input verwenden, mit 
Interrupt oder ohne je nach Geschmack. Die Differenz zweier aufeinander 
folgender Capture Werte berechnen, und fertig ist die Frequenz (naja, 
der Kehrwert davon).

Den Frequenzbereich vom Sensor und/oder den Prescaler vom Timer so 
wählen, dass die Zeit zwischen den Captures auch bei maximaler Frequenz 
nicht zu klein und damit ungenau wird, aber am anderen Ende der Skala 
auch nicht den Zählbereich des Timers überschreitet. Will man 
gleichermassen Mondlicht und Sonneneinstrahlung rauskriegen, muss man 
ggf. Frequenzbereich oder Prescaler bedarfsgemäss umschalten.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.