Hallo erts mal, Ich bräuchte Hilfe bei der Programmierung von meinem PIC16F877A, ich verwende den gratis Kompiler "microC PRO for PIC" und das PICkit 2. Die Platine is von mir aber an der Platine leigt der Fehler nich da ich es auch schon auf dem Steckbrett aufgebaut habe. Das Problem liegt bei dem PORTB, er macht nich das was ich ihm sage. Ich vermute dass es am compiler liegt. hier hab ich mal das Programm womitt ich den PORTD testete, void main() { TRISB=0x00; TRISD=0x00; PORTD=0xff; PORTB=0xff; while(1) ; } PortD funktioniert einwandfrei nur PORTB macht probleme weil sein Bit3 nicht high wird, ich hab den µC schon mehrmals ausgetauscht und meine Platine funzt auch einwandfrei, die Einstellungen vom Compiler hab ich auch richtig ( PORTD funzt einwandfrei ) (PORTB besitzt keine Analog eingänge) ich hab noch am anhang das Datasheet. ich freu mich wenn mir jemand einen Ratschlag geben könnte, Vorerst danke für Beiträge gruß lex
Das was ich oben geschrieben hab ist das gesamte Progremm, den Rest wird wohl der Kompiler machen mit seinen Biliotheken oder?, bei den anderen Port funktioniert alles.
Im Datenblatt auf Seite 45 steht: Dass per default Low Voltage ICSP aktiv ist, und deaktiviert werden muss, um PortB,3 als I/O zu nutzen !
danke Auf seite 31 im PDf ist PORTB beschrieben und ja es sind drei pins von PORTB are multiplext with the Low Voltage Prgramming funktion, es wird jedoch auf dem kapitel von Speciale Feature Section gewiesen. auf seite 45 hab ich geschaut ( auf beide da ich nicht wusste ob du seite 45 vom Adobe meinst oder vom Datenblatt) und hab da nix gefunten, könntest du mir den Befehl sagen womit ich diese Funktion deaktiviere danke ( ich weiß mein engl. ist sch.... )
Ich glaub den hast du nicht verstanden... oder ich den nicht. Egal! :D
>könntest du mir den Befehl sagen womit ich diese Funktion deaktiviere
Vieleicht kennt der Compiler irgendein #pragma um das
Configuration Word im Quellcode einzustellen. Ansonsten findest
du da sicher was im Programmierdialog vom Pickkit2.
Dafür brauchst du kein Befehl. In mikroC for PIC kannst du die Config so einstellen. Da ist oben ein Button wo du auch speichern kannst, das Projekt schließen kannst usw. Und da ist auch ein Punkt LVP. Ein Dropdownmenü ist darunter wo auch steht dass du den Pin als IO verwenden kannst. Ach.. Bei PICs ist es auch meist so dass die Priorität von LVP, ADC-Channels und Comperator über den des IO ist. also das man diese DEAKTIVIEREN und alle anderen Module aktivieren muss.
alex le. schrieb: > könntest du mir den Befehl sagen womit ich diese Funktion deaktiviere klar, im Ordner C:\Programme\Microchip\MPASM Suite finde ich die Datei P16F877A.inc Und die verrät mir folgendes: _LVP_OFF EQU H'3F7F' ; RB3 is digital I/O, HV on MCLR must be used for programming D.h. einfach _LVP_OFF mit in die Config Zeile und schon ist RB3 ein digital IO. Die Seitenzahl war die, die tatsächlich unten auf der Seite steht. Nicht die vom Reader. Und Grundsätzlich gilt, wenn ein Port nicht das tut was er soll, dann macht es Sinn, im Datenblatt unter "I/O Ports" nachzuschauen. Da ist jeder Port und jeder einzelne Pin beschrieben. Und in diesem Fall steht bei RB3 eine Fußnote mit dem Hinweis, den ich oben schon erwähnt habe.
vielen dank Herr Michael Skropski, ich weiß auch nich wiso ich so blöd
war und es nicht gesehen hab ( enable und disable ähneln sich zo sehr)
danke jezt funzt es aber jetzt hab ich ein anderes Problem
ich hab dieses Programm raufgeschriefen und
void main() {
int i;
TRISD=0x00;
TRISB=0x00;
while(1)
{
PORTD=0x01;
for(i=0;i<7;i++)
{
delay_ms(10);
PORTD=PORTD<<1;
}
delay_ms(10);
PORTD=0x00;
PORTB=0x01;
for(i=0;i<7;i++)
{
delay_ms(10);
PORTB=PORTB<<1;
}
delay_ms(10);
PORTB=0x00;
}
}
das problem ist wenn PORTD auf 1000 0000 ist geht er wie gewünscht auf
0000 0000 aber gleichzeitig sollte PORTB auf 0000 0001 gehen, aber das
nacht er erst nach der delayPause
dieses Programm soll ein Lauflicht sein aus PORTD und PORTD und das
Problem liegt eben bei dem Übergang von PORTD auf PORTB,
hätte da jemand ne idee
danke
mgf
alex
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.