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.