Forum: Mikrocontroller und Digitale Elektronik PIC16F628 Port Lesen/schreiben Verzweiflung


von Brian Dahl (Gast)


Lesenswert?

Hi,
ich Versuche mit dem HI-TECH C Compiler den PIC16F628 dazu zu Überreden 
von PORT A zu lesen und auf PORT B zu schreiben. Da ich mir noch die 
Hardware besorgen muss, habe ich erstmal  2 verschiedene Simulatoren 
ausprobiert und beides mal gleiches Ergebnis.

C-Code:
1
#include <htc.h>
2
#include <pic.h>
3
4
5
void Example(unsigned int *a)
6
{
7
    
8
  *a=PORTB;
9
  NOP();  
10
  PORTA=*a;
11
  NOP();
12
}
13
__CONFIG(UNPROTECT&INTIO);
14
void main(void)
15
{
16
  volatile unsigned int a=0;
17
  CMCON=0x07;
18
  TRISA=0x1f;
19
  TRISB=0xFF;
20
  INTCON=0x00;
21
  T0CS=0;
22
  PIE1=0x00;
23
  SPEN=0;
24
  while(1)
25
  {
26
    Example(&a);
27
  }
28
}
Wenn ich TRISB=0x00 setze funktioniert alles ohne Probleme, bei 
TRISB=0xff da kann ich nix mehr machen...
Kann mir jemand sagen wodrann das liegt?

von holger (Gast)


Lesenswert?

>Wenn ich TRISB=0x00 setze funktioniert alles ohne Probleme, bei
>TRISB=0xff da kann ich nix mehr machen...

TRISB=0x00 alles Ausgänge
TRISB=0xff alles Eingänge

Wo ist jetzt das Problem?

von BassHunter (Gast)


Lesenswert?

...PORT A zu lesen und auf PORT B zu schreiben...

a=PORTA;      //lesen von Port A
LATB=a;       //schreiben nach Port B


geht natürlich auch:

LATB=PORTA;

von Sven S. (stepp64) Benutzerseite


Lesenswert?

Im 16F gibts noch keine LAT-Register. Oder simuliert C das LAT-Register?

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
Noch kein Account? Hier anmelden.