| Autor |
|
|
|
BID = 300305
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
|
Zitat :
| | Der Compiler (MPLAB) sagt mir aber das das Symbol TRIS nicht definiert ist. |
Da hat er Recht.
Lass doch einfach bcf davor weg ! TRIS ist ein Befehl, kein Argument.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten ! |
|
BID = 300335
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
|
Danke für die Info
Im Datenblatt steht, dass Tris f mit f=6 verwendet wird.
Aber mit Tris 6 und bsf GPIO,1 leuchtet immer noch keine LED.
Ich verstehe es nicht.
mfg
Peo |
|
BID = 300390
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
Danke für das lange file. Aber das ist schon wieder so lang, dass ich damit noch Probleme habe.
Gibt es denn keinen kurzen Code, in dem einfach mal der Befehl für das Umschalten auf Ausgang und für das "Einschalten" eines Ausganges steht?
Ich verzweifle noch. Mit dem PIC 16F690 geht das alles, aber bei den simplen PICs sind die Befehle irgendwie komisch.
mfg
peo
|
BID = 300409
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| | Aber das ist schon wieder so lang, dass ich damit noch Probleme habe. |
Das Programm ist doch nur so lang, weil es so heftig kommentiert ist.
Lade es einfach mal mittels copy&paste und wirf dann die Kommentare raus, die Fehlermeldungen verursachen.
Den Vorspann habe ich dir nur gezeigt, damit du mal siehst wie ein etwas besserer Programmierstil aussieht.
bsf GPIO,1 ; ist schlechter Stil, weil man ein solches Programm nicht warten kann.
Hingegen ist:
Tr6 equ 1 ; GP1 Pin6
#DEFINE Trace6 GPIO,Tr6
und alle späteren Aufrufe nur noch:
bsf Trace6
...
bcf Trace6
viel lesbarer und weniger anfällig gegen Schreibfehler.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 300447
Ltof Inventar
     
Beiträge: 9386 Wohnort: Hommingberg
|
@Peo
Was ist mit den Beispielprogrammen, die bei Pickit2 dabei waren? Lässt sich daraus nichts erkennen?
Wieso bist Du jetzt mit drei verschiedenen PICs zugange?
Hast Du meinen Programmschnipsel ausprobiert?
Und was Perl eigentlich sagen will: Ein sauber strukturiertes Programm mit vernünftigen Zuweisungen von Variablen am Anfang, macht es übersichtlicher und Änderungen sind leichter einzupflegen.
Ich greife mal das Beispiel von perl auf und erkläre das:
Der Variablen Tr6 wird der Wert 1 zugewiesen.
Dem Text "Trace6" wird "GPIO, Tr6" zugewiesen.
Also macht
"bsf Trace6" in diesem Fall das selbe wie "bsf GPIO,1"
Sowas ist leichter zu pflegen, wenn man die Deklarationen ganz oben im Quelltext macht. Das wird später mal wichtig, wenn Du lange Programme schreibst.
Zunächst scheint mir aber ein anderes Problem vorzuliegen.
TRIS 6 (oder TRIS GPIO) funktioniert nur, wenn vorher im W-Register der Wert steht, mit dem die PINs auf Eingang oder Ausgang geschaltet werden sollen. Eine 0 für einen Ausgang und eine 1 für einen Eingang. Um GPIO,1 auf Ausgang zu schalten, muss vor dem Ausführen von TRIS das BIT 1 im W-Register gelöscht sein. Sonst kann es nicht funktionieren.
edit:
Ich hatte übrigens die selben Probleme wie Du. Da ich anfangs intensiv mit den PICs 12F629 und 12F675 herumgespielt hatte, war ich über die TRIS-Geschichte beim 10F206 etwas irritiert. Mir hilft es in solchen Fällen immer, ein fremdes, funktionierendes Programm aufzuspielen und mit meinem eigenen Strunz zu vergleichen.
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 300998
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
Danke für die geduldigen Tipps.
Jetzt komme ich voran.
mfg
Peo
|
BID = 306624
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
Hallo
Ich bekomme den GP2 nicht zum Laufen als Output.
Was muss ich tun?
mfg
Peo
|
BID = 306637
Ltof Inventar
     
Beiträge: 9386 Wohnort: Hommingberg
|
Zitat : Peo hat am 2 Mär 2006 20:27 geschrieben :
|
Was muss ich tun?
|
Link
(Aufmerksam lesen!)
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 306658
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
Danke für den Tipp
Ich habe aufmerksam gelesen und ich bin mir fast sicher, dass es etwas mit
OPTION TOC3 (4) zu tun hat. Aber ich habe es trotzdem
a) nicht verstanden
und
b) funktioniert das nicht.
Deswegen habe ich bewusst hier nochmal gefragt. Vielleicht kann ja jemand die paar Zeilen Code explizit posten.
Das wäre wirklich hilfreich.
mfg
Peo
|
BID = 306665
Ltof Inventar
     
Beiträge: 9386 Wohnort: Hommingberg
|
Zitat : Peo hat am 2 Mär 2006 21:28 geschrieben :
|
OPTION TOC3 (4) zu tun hat.
|
Was soll das sein?
Auf welche Seite in welchem Datenblatt beziehst Du Dich?
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|
BID = 306701
Peo Gesprächig
  
Beiträge: 181 Wohnort: Baden-W.
|
Ich beziehe mich auf das lange Code-Beispiel von PERL
Dort findet sich dieser Eintrag.
Dass es dieser sein sollte, schien mir logisch, weil im Datenblatt für den PIC 12F508/509 auf Seite 31 in Kapitel 5.3 steht, dass der TOCKI Pin durch das OPTION Register und nicht durch TRIS geschaltet wird.
Gemäß S. 4 des Datenblatts ist PIN 5 = GP2 = TOCKI
Deswegen dachte ich, dass diese CODE-Zeile wohl der Schlüssel ist. War es dann aber wohl doch nicht.
Dies heißt für mich nun leider wieder: Gehen Sie zurück ins Gefängnis, aber nicht über LOS!
mfg
Peo
[ Diese Nachricht wurde geändert von: Peo am 2 Mär 2006 23:34 ]
|
BID = 306758
Ltof Inventar
     
Beiträge: 9386 Wohnort: Hommingberg
|
Zitat : Peo hat am 2 Mär 2006 23:33 geschrieben :
|
Ich beziehe mich auf das lange Code-Beispiel von PERL
|
In perls Beispiel gibt es auch keinen Ausdruck namens "T0C3"
Zitat :
|
Gemäß S. 4 des Datenblatts ist PIN 5 = GP2 = TOCKI
|
Es ist der selbe Pin, PIN 5 eben. Funktional sind das zwei völlig verschiedenen Dinge. Entweder PIN 5 wird als Timer 0Clock Input benutzt oder eben als GP2. Du willst ihn als GP als Ausgang benutzen. Das hat dann mit OPTION nur bedingt zu tun. Der GP2 muss in TRIS entsprechend initialisiert werden! TOCS muss gelöscht sein! Sonst wird PIN5 als Eingang für Timer 0 beschaltet, da dieses Bit eine höhere Priorität hat als die Einstellung im TRIS-Register.
Gruß,
Ltof
_________________
„Schreibe nichts der Böswilligkeit zu, was durch Dummheit hinreichend erklärbar ist.“
(Hanlon’s Razor)
|