Input funktioniert nicht

Gast #60246
Lesenswert?

Hi Leute, ich habe mein Tastaturproblem reduziert und NUR den INput
getestet. Leider funktioniert das irgentetwas nicht. Egal ob ich am
PortA ein H oder L anlege, PortB verändert sich nicht! Das Programm ist
eigentlich ziemlich simpel:

#include <16f628.h>
#include <inline.h>     // Der verwendete Prozessor


void main()
{
 TRISA=0b00001111;      //RA0-RA3 = Inputs
 TRISB=0b00000000;
 PORTB=0x00;

 while(1)       //Endlosschleife
 {
    PORTB = PORTA;
 }

}

Wo ist denn da der Fehler?? Ich versteh es einfach nicht!

Thx
Gast #60249
Lesenswert?

Laut Doku (Page 31) muss in CMCON 0x07 geschrieben werden, damit die
PORTA Pins als I/O funktionieren (und nicht als Komparatoreingänge).

Ebenfalls solltest Du prüfen, ob Dein Compiler tatsächlich automatisch
die Registerbänke umschaltet. Sonst musst Du das vor jedem Setzen eines
Registers (TRISA, PORTA, CMCON...) von Hand erledigen.

Andreas

PS: Nicht immer neue Threads öffnen!
Gast #60250
Lesenswert?

Danke!

CMCON 0x07 funzt! HURRA ;) Jetzt fehlt mir nur noch ein kleiner Tip wie
ich auf das interne ROM zugreiffen kann. Wie kann ich im ROM Variablen
ablegen bzw. lesen oder auch ab einer bestimmten Adresse XX bits
einlesen?!
Gast #60251
Lesenswert?

ROM??? (Read Only Memory = Nur Lese Speicher)

Daten kannst du im RAM ablegen (genauer: in den General Purpose
Registern), die Daten sind aber nach abschalten der Spannungversorgung
weg. Oder Du schreibst die Daten ins EEPROM, dann bleiben sie auch nach
Abschalten der Spannungversorgung erhalten.

Wie das alles geht, steht im Datasheet. Daher empfehle ich Dir: Lies'
das Datasheet ersteinmal komplett durch! Auch wenn's mühsam ist.
Kapitel die erstmal nicht in Frage kommen (z.B. USART) kanns Du ja
überspringen. Danach würde ich mir ein paar Beispielprogramme (z.B.
Application Notes von www.microchip.com) ansehen.

Ausserdem kannst Du im Programmspeicher Tabellen anlegen. Allerdings
nur beim Programmieren. Die werden dann mit dem Programm 'gebrannt'.
Sie Dir hierzu mal die Assemblerdirektive 'DT' im Assembler Users
Guide an.

Andreas
Gast #60253
Lesenswert?

Sorry, meinte auch das EEPROM. Habe es dank Datenblatt geschafft! Gibt
es irgentwo das Datenblatt vom 16F862 zu kaufen? ich habe keine Lust
mit 160 Seiten am Bildschrim anzugucken oder auszudrucken?!
Gast #60254
Lesenswert?

Ich habe früher einige Datasheets in Buchform von meinem damaligen
Distibutor Future Elektronics bekommen. Das funkioniert aber nur,
solange die davon ausgehen, dass irgendwann grössere Mengen
(>1000/Jahr) abgenommen werden.

Ich drucke die Sheets heute auch selbst aus. Dazu empfehle ich das
Druck-Tool FinePrint. Mit dem kann man mehrere Seiten auf einem A4
Blatt drucken. Ausserdem braucht man ja nur die Kapitel zu drucken, die
einen im Moment interessieren.

Andreas

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren