PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pic 16f627



msp
23.07.2009, 20:52
moin leuts,

ich mal wieder.

habe jetzt ein anderes problem was ich mir leidernoch nichterklaeren kann:

vorab kurze infos:
- compiler cc5x um von c zum hexfile zu kommen,
- conrad pic programmer board k8048

ich hab mir ein sehr sehr simples kleines programm geschieben was nur den status von porta.2 an portb.0 ausgeben soll, sprich ist porta.2 high dann soll ne led an portb.0 leuchten. geht nur leider nicht und ich weis nicht wieso.

ich hab euch mal etwas code reingestellt:


#include <16F627.h> // Prozessor-Typ definieren
#pragma config|=0b.1.11.11.1.0.1.1.1.0.001

void main(void) // Start des Hauptprogramms
{
char i;

TRISB = 0b.0000.0000; // PortB als Ausgang definieren
bit Plus @ PORTA.0;
//TRISA = 0b.1111.1111; // PortB als Ausgang definieren
//PORTB = 0b.0000.0000;

Sprungmarke:


PORTB.0 = PORTA.2;

goto Sprungmarke; // Alles wiederholen

} // Ende des Hauptprogramms



sieht recht simpel aus und sollte es auch sein.

vielleicht hat einer eine idee wieso es nicht geht, seit 2 stunden sitz ich hier an sowas einfachem und bin fast am verzweifeln

danke fuer eure hilfe.

gruss
msp

msp
23.07.2009, 21:29
hallo leute,

ich denke ich habs rausgefunden:


CMCON = 0b00000111; // Disable Comparator module's
// Disable pull-ups
// INT on rising edge
// TMR0 to CLKOUT
// TMR0 Incr low2high trans.
// Prescaler assign to Timer0
// Prescaler rate is 1:256
OPTION_REG = 0b11010111; // Set PIC options (see datasheet).
INTCON = 0; // Disable interrupts.

ich verstehs nur nicht ganz, kann mir das jemand erklaeren bitte? sonst schaue ich nach das geht auch.

danke trotzdem.

gruss
msp

robotcheck
24.07.2009, 11:21
Hallo,

wie? Die Lösung selbst gefunden, aber nicht verstanden?

Es geht wieder um die analogen Pins:

Nach dem Einschalten/Reset stehen alle PORT-PINs auf Eingang und alle analogen Eingänge sind eingeschaltet. Der PIC geht sozusagen in den sichersten Zustand. Die Aktivierung der analogen Eingänge hat auch Gründe im Stromverbrauch.

Wie Du in dem Code selbst geschrieben hast, werden zuerst die analogen Eingänge deaktiviert.
Erst dann können die digitalen Signale verarbeitet werden.