Forum: Mikrocontroller und Digitale Elektronik HI-Tech Compiler


von Sadier (Gast)


Lesenswert?

Hallo zusammnen,

Wie kann man in HI-Tech Compiler einen Pin steuern, sprich auf High oder 
Low legen? beim CCS gibt es die Build-In Funktion output_high (Testpin) 
und output_low (Testpin). wie sieht es im Hi-Tech compiler aus?

Danke

Sadier

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Wie kann man in HI-Tech Compiler einen Pin steuern
Das kommt ganz auf den verwendeten Controller an... :-/

> Wie kann man in HI-Tech Compiler einen Pin steuern
Gibts da evtl. sogar ein Manual dazu? Oder Beispielprogramme?

von gast (Gast)


Lesenswert?

Vielleicht solltest du noch mal die Grundlagen der µC-Technik 
durcharbeiten...Deine Frage lässt darauf schließen, dass hier noch 
Defizite vorhanden sind. Außerdem gibt es im Programmverzeichnis des 
Compilers eine pdf, sozusagen das Handbuch.
Zur Info vorab, es reicht nicht irgendeine Funktion für das Setzen eines 
Portspins auszuführen. Vorher müssen jede Menge Register zur 
Initialisierung des µC gesetzt werden.

von Timo P. (latissimo)


Lesenswert?


von Sadier (Gast)


Lesenswert?

Hallo Zusammen,

Danke für eure Antworten.

Also im Handbuch von dem Hi-Tech Compiler steht nichts drin. Ein 
Bespielprogramm verwendet den Befehl : Testpin_High(), Testpin muss man 
vorher definieren... der Compiler bringt mir immer die fehler meldung:
Error   [499] ; 0. undefined symbol:
  _Testpin_HIGH(example.obj)


Es handelt sich um den PIC16F688


Danke

Sadier

von Ahem (Gast)


Lesenswert?

>Testpin muss man
>vorher definieren... der Compiler bringt mir immer die fehler meldung:
>Error   [499] ; 0. undefined symbol:
>  _Testpin_HIGH(example.obj)

Nun, da dürfte wohl ein innerer Zusammenhang bestehen.

Beitrag ""Hilfe", "funktioniert nicht", funktioniert nicht."

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Testpin_High
such mal im gesamten Installationsverzeichnis in allen *.c und *.h Files 
nach diesem Text.
Such dann auch noch nach Stichwörtern wie "Pin*" und "Port*". Irgendwo 
wirst du schon was finden.

> Testpin_High()
> _Testpin_HIGH
C ist Case-Sensitiv. Das weißt du?

BTW:
Was ist das für ein Jagdhund, den man zum Jagen tragen muß?  :-o

von Timo P. (latissimo)


Lesenswert?

poste doch mal den gesamten code des beispiels!
entweder ist Testpin_High() soetwas:

#define Testpin_High() PORTA = 0x01;
// dann wird es wahrscheinlich in der xyz.h datei sein

oder es ist eine Funktion, die an anderer Stelle im Code steckt. z.b.:

void Testpin_High()
{
   TRISA = ...
   PORTA = 0x01;
}
// dann wird es wohl in einer C-Datei sein



wie gesagt, poste den code!!!

von Sadier (Gast)


Lesenswert?

#include <htc.h>

__CONFIG(INTCLK & BOREN & PWRTDIS & MCLRDIS & UNPROTECT );

//__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7);

#define Testpin      RA2
#define SpBuffer     0x00

int READEEPROM (int Addresse);
void WRITEEEPROM (int Addresse, int Wert);


void main (void)

{
  int Testvar;

  __EEPROM_DATA(0, 0, 0, 0, 0, 0, 0, 0);
  __EEPROM_DATA(1, 1, 1, 1, 1, 1, 1, 1);

  Testpin_HIGH();

  //RA2 = 1;
   //int value = 0x01;
   //int address = 0x00;
     //eeprom_write(address,value);
  //while(WR) continue;
  //eeprom_read (SpBuffer);
  Testvar = READEEPROM(SpBuffer);

}



int READEEPROM( int Addresse )


{
  int Help;
  EEADR = Addresse;
  RD = 1;
  //Help= EEDAT;
  return (Help);

}



void WRITEEEPROM(int Addresse, int Wert)


{

  EEADR = Addresse;
    //EEDAT = Wert;
  WREN = 1;

  while(WR) continue;


}

von Timo P. (latissimo)


Lesenswert?

wo ist die htc.h??

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> wo ist die htc.h??
Das ist unwichtig, denn in der ist
1
Testpin_HIGH();
 nicht definiert, denn sonst würde ein anderer Fehler kommen ;-)
Siehe dort im Beitrag "Re: HI-Tech Compiler"

von Thomas (Gast)


Lesenswert?

Poste mal das Beispiel, inkl. der *.h oder *.c Dateien die dort 
eingebunden werden.

von Sadier (Gast)


Lesenswert?

Anbei dir HTC.H Datei

#ifndef HTC_H
#define HTC_H


/* Definitions for HTC_EDITION values */
#define _LITE_ 0
#define _STD_ 1
#define _PRO_ 2

/* common definitions */

#define  ___mkstr1(x)  #x
#define  ___mkstr(x)  ___mkstr1(x)



/* HI-TECH PICC / PICC-Lite compiler */
#if  defined(_PICC_) || defined(_PICCLITE_)
#include <pic.h>
#endif

/* HI-TECH PICC-18 compiler */
#if  defined(_PICC18_)
#include <pic18.h>
#endif

/* HI-TECH dsPICC compiler */
#if  defined(_DSPICC_)
#include <dspic.h>
#endif

/* HI-TECH HTKC compiler for Holtek MCUs */
#if  defined(HTKC)
#include <htk.h>
#endif

/* HI-TECH C for 8051 */
#if  defined(_HTC8051_)
#include <8051.h>
#endif

/* HI-TECH C for MSP430 */
#if  defined(_MSP430C_)
#include <msp430.h>
#endif

/* HI-TECH C for ARM */
#if  defined(_ARMC_)
#include <arm.h>
#endif

/* HI-TECH HTFSC compiler for Fortune MCUs */
#if  defined(_HTFSC_) || defined(HTFSC)
#include <htfsc.h>
#endif

/* HI-TECH C for PIC32 */
#if defined(_PICC32_)
#include <pic32.h>
#endif

/* HI-TECH C for PSOC */
#if defined(_HCPSOC_)
#include <psoc.h>
#endif

#endif

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Schon mal im HI-Tech Forum gesucht?
http://forum.htsoft.com/all/showflat.php/Cat/0/Number/115422/Main/115292
Zitat:
1
Then I realized about 5 min after I posted that I forgot to include pic.h in my library!

Müsstest du deine CPU noch irgendwie definieren?

von Sadier (Gast)


Lesenswert?

Ich habe auch die PIC Datei ins Projekt eingebunden:


#ifndef  HTC_H
#warning Header file pic16f688.h included directly. Use #include <htc.h> 
instead.
#endif


 /* header file for the MICROCHIP PIC microcontroller
  * PIC16F688
 */

#ifndef  __PIC16F688_H
#define  __PIC16F688_H

// Special function register definitions

volatile       unsigned char  INDF    @ 0x00;
volatile       unsigned char  TMR0    @ 0x01;
volatile       unsigned char  PCL    @ 0x02;
volatile       unsigned char  STATUS    @ 0x03;
               unsigned char  FSR    @ 0x04;
volatile       unsigned char  PORTA    @ 0x05;
volatile       unsigned char  PORTC    @ 0x07;
volatile       unsigned char  PCLATH    @ 0x0A;
volatile       unsigned char  INTCON    @ 0x0B;
volatile       unsigned char  PIR1    @ 0x0C;
volatile       unsigned char  TMR1L    @ 0x0E;
volatile       unsigned char  TMR1H    @ 0x0F;
volatile       unsigned char  T1CON    @ 0x10;
volatile       unsigned char  BAUDCTL    @ 0x11;
               unsigned char  SPBRGH    @ 0x12;
               unsigned char  SPBRG    @ 0x13;
volatile       unsigned char  RCREG    @ 0x14;
volatile       unsigned char  TXREG    @ 0x15;
volatile       unsigned char  TXSTA    @ 0x16;
volatile       unsigned char  RCSTA    @ 0x17;
volatile       unsigned char  WDTCON    @ 0x18;
volatile       unsigned char  CMCON0    @ 0x19;
               unsigned char  CMCON1    @ 0x1A;
volatile       unsigned char  ADRESH    @ 0x1E;
volatile       unsigned char  ADCON0    @ 0x1F;
               unsigned char  OPTION    @ 0x81;
volatile       unsigned char  TRISA    @ 0x85;
volatile       unsigned char  TRISC    @ 0x87;
               unsigned char  PIE1    @ 0x8C;
volatile       unsigned char  PCON    @ 0x8E;
volatile       unsigned char  OSCCON    @ 0x8F;
               unsigned char  OSCTUNE    @ 0x90;
               unsigned char  ANSEL    @ 0x91;
               unsigned char  WPUA    @ 0x95;
               unsigned char  IOCA    @ 0x96;
volatile       unsigned char  EEDATH    @ 0x97;
volatile       unsigned char  EEADRH    @ 0x98;
               unsigned char  VRCON    @ 0x99;
volatile       unsigned char  EEDAT    @ 0x9A;
/* Alternate definition */
volatile       unsigned char  EEDATA    @ 0x9A;
volatile       unsigned char  EEADR    @ 0x9B;
/* Alternate definition */
volatile       unsigned char  EEADRL    @ 0x9B;
volatile       unsigned char  EECON1    @ 0x9C;
volatile       unsigned char  EECON2    @ 0x9D;
volatile       unsigned char  ADRESL    @ 0x9E;
               unsigned char  ADCON1    @ 0x9F;


/* Definitions for STATUS register */
volatile       bit  CARRY    @ ((unsigned)&STATUS*8)+0;
volatile       bit  DC    @ ((unsigned)&STATUS*8)+1;
volatile       bit  ZERO    @ ((unsigned)&STATUS*8)+2;
volatile       bit  PD    @ ((unsigned)&STATUS*8)+3;
volatile       bit  TO    @ ((unsigned)&STATUS*8)+4;
               bit  RP0    @ ((unsigned)&STATUS*8)+5;
               bit  RP1    @ ((unsigned)&STATUS*8)+6;
               bit  IRP    @ ((unsigned)&STATUS*8)+7;

/* Definitions for PORTA register */
volatile       bit  RA0    @ ((unsigned)&PORTA*8)+0;
volatile       bit  RA1    @ ((unsigned)&PORTA*8)+1;
volatile       bit  RA2    @ ((unsigned)&PORTA*8)+2;
volatile       bit  RA3    @ ((unsigned)&PORTA*8)+3;
volatile       bit  RA4    @ ((unsigned)&PORTA*8)+4;
volatile       bit  RA5    @ ((unsigned)&PORTA*8)+5;

/* Definitions for PORTC register */
volatile       bit  RC0    @ ((unsigned)&PORTC*8)+0;
volatile       bit  RC1    @ ((unsigned)&PORTC*8)+1;
volatile       bit  RC2    @ ((unsigned)&PORTC*8)+2;
volatile       bit  RC3    @ ((unsigned)&PORTC*8)+3;
volatile       bit  RC4    @ ((unsigned)&PORTC*8)+4;
volatile       bit  RC5    @ ((unsigned)&PORTC*8)+5;

/* Definitions for INTCON register */
volatile       bit  RAIF    @ ((unsigned)&INTCON*8)+0;
volatile       bit  INTF    @ ((unsigned)&INTCON*8)+1;
volatile       bit  T0IF    @ ((unsigned)&INTCON*8)+2;
               bit  RAIE    @ ((unsigned)&INTCON*8)+3;
               bit  INTE    @ ((unsigned)&INTCON*8)+4;
               bit  T0IE    @ ((unsigned)&INTCON*8)+5;
               bit  PEIE    @ ((unsigned)&INTCON*8)+6;
volatile bit  GIE    @ ((unsigned)&INTCON*8)+7;

/* Definitions for PIR1 register */
volatile       bit  TMR1IF    @ ((unsigned)&PIR1*8)+0;
volatile       bit  TXIF    @ ((unsigned)&PIR1*8)+1;
volatile       bit  OSFIF    @ ((unsigned)&PIR1*8)+2;
volatile       bit  C1IF    @ ((unsigned)&PIR1*8)+3;
volatile       bit  C2IF    @ ((unsigned)&PIR1*8)+4;
volatile       bit  RCIF    @ ((unsigned)&PIR1*8)+5;
volatile       bit  ADIF    @ ((unsigned)&PIR1*8)+6;
volatile       bit  EEIF    @ ((unsigned)&PIR1*8)+7;

/* Definitions for T1CON register */
               bit  TMR1ON    @ ((unsigned)&T1CON*8)+0;
               bit  TMR1CS    @ ((unsigned)&T1CON*8)+1;
               bit  T1SYNC    @ ((unsigned)&T1CON*8)+2;
               bit  T1OSCEN    @ ((unsigned)&T1CON*8)+3;
               bit  T1CKPS0    @ ((unsigned)&T1CON*8)+4;
               bit  T1CKPS1    @ ((unsigned)&T1CON*8)+5;
               bit  T1GE    @ ((unsigned)&T1CON*8)+6;
               bit  T1GINV    @ ((unsigned)&T1CON*8)+7;

/* Definitions for BAUDCTL register */
volatile       bit  ABDEN    @ ((unsigned)&BAUDCTL*8)+0;
volatile       bit  WUE    @ ((unsigned)&BAUDCTL*8)+1;
               bit  BRG16    @ ((unsigned)&BAUDCTL*8)+3;
volatile       bit  SCKP    @ ((unsigned)&BAUDCTL*8)+4;
volatile       bit  RCIDL    @ ((unsigned)&BAUDCTL*8)+6;
volatile       bit  ABDOVF    @ ((unsigned)&BAUDCTL*8)+7;

/* Definitions for TXSTA register */
volatile       bit  TX9D    @ ((unsigned)&TXSTA*8)+0;
volatile       bit  TRMT    @ ((unsigned)&TXSTA*8)+1;
               bit  BRGH    @ ((unsigned)&TXSTA*8)+2;
               bit  SENDB    @ ((unsigned)&TXSTA*8)+3;
               bit  SYNC    @ ((unsigned)&TXSTA*8)+4;
               bit  TXEN    @ ((unsigned)&TXSTA*8)+5;
               bit  TX9    @ ((unsigned)&TXSTA*8)+6;
               bit  CSRC    @ ((unsigned)&TXSTA*8)+7;

/* Definitions for RCSTA register */
volatile       bit  RX9D    @ ((unsigned)&RCSTA*8)+0;
volatile       bit  OERR    @ ((unsigned)&RCSTA*8)+1;
volatile       bit  FERR    @ ((unsigned)&RCSTA*8)+2;
               bit  ADDEN    @ ((unsigned)&RCSTA*8)+3;
               bit  CREN    @ ((unsigned)&RCSTA*8)+4;
               bit  SREN    @ ((unsigned)&RCSTA*8)+5;
               bit  RX9    @ ((unsigned)&RCSTA*8)+6;
               bit  SPEN    @ ((unsigned)&RCSTA*8)+7;

/* Definitions for WDTCON register */
               bit  SWDTEN    @ ((unsigned)&WDTCON*8)+0;
               bit  WDTPS0    @ ((unsigned)&WDTCON*8)+1;
               bit  WDTPS1    @ ((unsigned)&WDTCON*8)+2;
               bit  WDTPS2    @ ((unsigned)&WDTCON*8)+3;
               bit  WDTPS3    @ ((unsigned)&WDTCON*8)+4;

/* Definitions for CMCON0 register */
               bit  CM0    @ ((unsigned)&CMCON0*8)+0;
               bit  CM1    @ ((unsigned)&CMCON0*8)+1;
               bit  CM2    @ ((unsigned)&CMCON0*8)+2;
               bit  CIS    @ ((unsigned)&CMCON0*8)+3;
               bit  C1INV    @ ((unsigned)&CMCON0*8)+4;
               bit  C2INV    @ ((unsigned)&CMCON0*8)+5;
volatile       bit  C1OUT    @ ((unsigned)&CMCON0*8)+6;
volatile       bit  C2OUT    @ ((unsigned)&CMCON0*8)+7;

/* Definitions for CMCON1 register */
               bit  C2SYNC    @ ((unsigned)&CMCON1*8)+0;
               bit  T1GSS    @ ((unsigned)&CMCON1*8)+1;

/* Definitions for ADCON0 register */
               bit  ADON    @ ((unsigned)&ADCON0*8)+0;
volatile       bit  GODONE    @ ((unsigned)&ADCON0*8)+1;
               bit  CHS0    @ ((unsigned)&ADCON0*8)+2;
               bit  CHS1    @ ((unsigned)&ADCON0*8)+3;
               bit  CHS2    @ ((unsigned)&ADCON0*8)+4;
               bit  VCFG    @ ((unsigned)&ADCON0*8)+6;
               bit  ADFM    @ ((unsigned)&ADCON0*8)+7;

/* Definitions for OPTION register */
               bit  PS0    @ ((unsigned)&OPTION*8)+0;
               bit  PS1    @ ((unsigned)&OPTION*8)+1;
               bit  PS2    @ ((unsigned)&OPTION*8)+2;
               bit  PSA    @ ((unsigned)&OPTION*8)+3;
               bit  T0SE    @ ((unsigned)&OPTION*8)+4;
               bit  T0CS    @ ((unsigned)&OPTION*8)+5;
               bit  INTEDG    @ ((unsigned)&OPTION*8)+6;
               bit  RAPU    @ ((unsigned)&OPTION*8)+7;

/* Definitions for TRISA register */
               bit  TRISA0    @ ((unsigned)&TRISA*8)+0;
               bit  TRISA1    @ ((unsigned)&TRISA*8)+1;
               bit  TRISA2    @ ((unsigned)&TRISA*8)+2;
               bit  TRISA3    @ ((unsigned)&TRISA*8)+3;
               bit  TRISA4    @ ((unsigned)&TRISA*8)+4;
               bit  TRISA5    @ ((unsigned)&TRISA*8)+5;

/* Definitions for TRISC register */
volatile       bit  TRISC0    @ ((unsigned)&TRISC*8)+0;
volatile       bit  TRISC1    @ ((unsigned)&TRISC*8)+1;
volatile       bit  TRISC2    @ ((unsigned)&TRISC*8)+2;
volatile       bit  TRISC3    @ ((unsigned)&TRISC*8)+3;
volatile       bit  TRISC4    @ ((unsigned)&TRISC*8)+4;
volatile       bit  TRISC5    @ ((unsigned)&TRISC*8)+5;

/* Definitions for PIE1 register */
               bit  TMR1IE    @ ((unsigned)&PIE1*8)+0;
               bit  TXIE    @ ((unsigned)&PIE1*8)+1;
               bit  OSFIE    @ ((unsigned)&PIE1*8)+2;
               bit  C1IE    @ ((unsigned)&PIE1*8)+3;
               bit  C2IE    @ ((unsigned)&PIE1*8)+4;
               bit  RCIE    @ ((unsigned)&PIE1*8)+5;
               bit  ADIE    @ ((unsigned)&PIE1*8)+6;
               bit  EEIE    @ ((unsigned)&PIE1*8)+7;

/* Definitions for PCON register */
volatile       bit  BOD    @ ((unsigned)&PCON*8)+0;
volatile       bit  POR    @ ((unsigned)&PCON*8)+1;
               bit  SBODEN    @ ((unsigned)&PCON*8)+4;
               bit  ULPWUE    @ ((unsigned)&PCON*8)+5;

/* Definitions for OSCCON register */
               bit  SCS    @ ((unsigned)&OSCCON*8)+0;
volatile       bit  LTS    @ ((unsigned)&OSCCON*8)+1;
volatile       bit  HTS    @ ((unsigned)&OSCCON*8)+2;
volatile       bit  OSTS    @ ((unsigned)&OSCCON*8)+3;
               bit  IOSCF0    @ ((unsigned)&OSCCON*8)+4;
               bit  IOSCF1    @ ((unsigned)&OSCCON*8)+5;
               bit  IOSCF2    @ ((unsigned)&OSCCON*8)+6;
/* Alternate definitions for OSCCON register */
               bit  IRCF0    @ ((unsigned)&OSCCON*8)+4;
               bit  IRCF1    @ ((unsigned)&OSCCON*8)+5;
               bit  IRCF2    @ ((unsigned)&OSCCON*8)+6;

/* Definitions for OSCTUNE register */
               bit  TUN0    @ ((unsigned)&OSCTUNE*8)+0;
               bit  TUN1    @ ((unsigned)&OSCTUNE*8)+1;
               bit  TUN2    @ ((unsigned)&OSCTUNE*8)+2;
               bit  TUN3    @ ((unsigned)&OSCTUNE*8)+3;
               bit  TUN4    @ ((unsigned)&OSCTUNE*8)+4;

/* Definitions for ANSEL register */
               bit  ANS0    @ ((unsigned)&ANSEL*8)+0;
               bit  ANS1    @ ((unsigned)&ANSEL*8)+1;
               bit  ANS2    @ ((unsigned)&ANSEL*8)+2;
               bit  ANS3    @ ((unsigned)&ANSEL*8)+3;
               bit  ANS4    @ ((unsigned)&ANSEL*8)+4;
               bit  ANS5    @ ((unsigned)&ANSEL*8)+5;
               bit  ANS6    @ ((unsigned)&ANSEL*8)+6;
               bit  ANS7    @ ((unsigned)&ANSEL*8)+7;

/* Definitions for WPUA register */
               bit  WPUA0    @ ((unsigned)&WPUA*8)+0;
               bit  WPUA1    @ ((unsigned)&WPUA*8)+1;
               bit  WPUA2    @ ((unsigned)&WPUA*8)+2;
               bit  WPUA4    @ ((unsigned)&WPUA*8)+4;
               bit  WPUA5    @ ((unsigned)&WPUA*8)+5;

/* Definitions for IOCA register */
               bit  IOCA0    @ ((unsigned)&IOCA*8)+0;
               bit  IOCA1    @ ((unsigned)&IOCA*8)+1;
               bit  IOCA2    @ ((unsigned)&IOCA*8)+2;
               bit  IOCA3    @ ((unsigned)&IOCA*8)+3;
               bit  IOCA4    @ ((unsigned)&IOCA*8)+4;
               bit  IOCA5    @ ((unsigned)&IOCA*8)+5;

/* Definitions for VRCON register */
               bit  VR0    @ ((unsigned)&VRCON*8)+0;
               bit  VR1    @ ((unsigned)&VRCON*8)+1;
               bit  VR2    @ ((unsigned)&VRCON*8)+2;
               bit  VR3    @ ((unsigned)&VRCON*8)+3;
               bit  VRR    @ ((unsigned)&VRCON*8)+5;
               bit  VREN    @ ((unsigned)&VRCON*8)+7;

/* Definitions for EECON1 register */
volatile       bit  RD    @ ((unsigned)&EECON1*8)+0;
volatile       bit  WR    @ ((unsigned)&EECON1*8)+1;
volatile       bit  WREN    @ ((unsigned)&EECON1*8)+2;
volatile       bit  WRERR    @ ((unsigned)&EECON1*8)+3;
volatile       bit  EEPGD    @ ((unsigned)&EECON1*8)+7;

/* Definitions for ADCON1 register */
               bit  ADCS0    @ ((unsigned)&ADCON1*8)+4;
               bit  ADCS1    @ ((unsigned)&ADCON1*8)+5;
               bit  ADCS2    @ ((unsigned)&ADCON1*8)+6;


// Configuration Mask Definitions
#define CONFIG_ADDR  0x2007
// Fail-Safe clock monitor
#define FCMEN    0x3FFF
#define FCMDIS    0x37FF
// Internal External Switch Over
#define IESOEN    0x3FFF
#define IESODIS    0x3BFF
// Brown-out detect modes
#define BOREN    0x3FFF
#define BOREN_XSLP  0x3EFF
#define SBOREN    0x3DFF
#define BORDIS    0x3CFF
// Protection of data block
#define UNPROTECT  0x3FFF
#define CPD      0x3F7F
// Protection of program code
#define UNPROTECT  0x3FFF
#define PROTECT    0x3FBF
// Master clear reset pin function
#define MCLREN    0x3FFF
#define MCLRDIS    0x3FDF
// Power up timer enable
#define PWRTDIS    0x3FFF
#define PWRTEN    0x3FEF
// Watchdog timer enable
#define WDTEN    0x3FFF
#define WDTDIS    0x3FF7
// Oscillator configurations
#define RCCLK    0x3FFF
#define RCIO    0x3FFE
#define INTCLK    0x3FFD
#define INTIO    0x3FFC
#define EC      0x3FFB
#define HS      0x3FFA
#define XT      0x3FF9
#define LP      0x3FF8

#endif

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Und dort steht doch schon die Lösung:
1
/* Definitions for PORTA register */
2
volatile       bit  RA0    @ ((unsigned)&PORTA*8)+0;
3
volatile       bit  RA1    @ ((unsigned)&PORTA*8)+1;
4
volatile       bit  RA2    @ ((unsigned)&PORTA*8)+2;
5
volatile       bit  RA3    @ ((unsigned)&PORTA*8)+3;
6
volatile       bit  RA4    @ ((unsigned)&PORTA*8)+4;
7
volatile       bit  RA5    @ ((unsigned)&PORTA*8)+5;

Schreib einfach
1
RA0 = 1; // damit wird Pin 0 am Port A high
2
RA0 = 0; // damit wird Pin 0 am Port A low


Ein Tipp:
Du solltest du dir aber so langsam mal ein Buch zum Thema ansehen :-/

von Sadier (Gast)


Lesenswert?

Danke Lothar,

Ein Buch besorgen, das werde ich gleich tun, hast du einen Tipp?

Grüße

von Timo P. (latissimo)


Lesenswert?

"buch" wäre u.U. auch http://www.cc5x.de/ Die Beispiele sind auf Basis 
des cc5x-Compilers geschrieben, jedoch ist und bleibt c ja c ;)

evlt. kannst du ja folgendes kompilieren:(bsp-code von Teil1)
1
#include <16F688.h>        // Prozessor-Typ definieren
2
void main(void)            // Start des Hauptprogramms
3
{
4
  TRISB = 0b.0000.0000;    // Pins d PortB sind als Ausgänge geschaltet
5
  PORTB = 0b.0000.1111;    // unteres Nibble auf High
6
}
wenn nicht, schreibst du alternativ:
TRISB = 0x00;
PORTB = 0x0F;

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.