Hallo, bin neu in diesem Gebietund kenn mich noch nicht so gut mit Microcontrollern aus! Wollte als test nur mehrere Dioden zum leuchten bringen und hab den PIC16F628A mit folgendem Programm in MPLAB beschrieben! ------------------------------------------------------------------------ ------ void main(void) { TRISA = 0b.0000.0000; PORTA = 0b.0000.1010; TRISB = 0b.0000.0000; PORTB = 0b.0101.1010; } ------------------------------------------------------------------------ ------ aber irgendwie funktioniert das nicht! mit dem PIC 16F84A funktioniert das! muss man bei dem dem PIC 16F628A irgend welche besonderen einstellungen beim brennen vornehmen? Schon mal danke im voraus MFG SNI
------------------------------------------------------------------------ ------ > void main(void) > { > TRISA = 0b.0000.0000; > PORTA = 0b.0000.1010; > TRISB = 0b.0000.0000; > PORTB = 0b.0101.1010; > } > ------------------------------------------------------------------------ ------ Ist das wirklich so, dass da noch zusätzliche Punkte drin sein müssen? Ansonsten gilt des, die Fuses im Auge zu haben.
Die PIC16F627/628 haben einen Komparator. Den hat der F84 nicht. Nach Power up ist PORTA als analog-in konfiguriert. Damit PORTA digital arbeitet brauchts noch den Befehl CMCON = 7; siehe datenblatt Seite 61 Gerhard
HI SNI
Also diese Punkte sind echt komisch. Lass sie einfach weg, geht ohne. So
kannst du schon mal eine mögliche Fehlerquelle eliminieren.
Und dann must du gleich am Anfang die analogen Analog-Eingänge auf
Digital umschalten. Denn im Vergleich zu 16f84 ist PORTA nach dem Reset
auf ADC eingestellt (Analog-Digital-Converter). Um PORTA zu benutzen
musst du auf jeden Fall am Anfang auf digital umschalten.
Das geht so.
Im Assembler:
BSF CMCON, CM0
BSF CMCON, CM1
BSF CMCON, CM2
In C entsprechend !! (Beachte auch die anderen Bits im CMCON)
Schalte auch die Interupts am besten aus
Das ist das GIE Bit.
PS: Wenn du Anfänger bist, programmiere auch einmal im Assembler. Es ist
sehr einfach und man kann sich beim Assembler mehr aus wesentliche
konzentrieren.
richtig, nachdem du das CMCON Register konfiguriert hast müsste es klappen. Ein while(1); am Ende deines Programms wäre auch nicht verkehrt, da der Mikrocontroller sonst glaube ich wieder von vorne anfängt....
Nur so aus Interesse: Welchen Compiler hast du benutzt? Oder ist bei MPLAB seit neuestem einer für die PIC16 dabei?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.