Sida 1 av 1

Register 12F1840

Postat: 17 november 2016, 10:47:23
av newbadboy
Lyckas banne mig inte toggla en enkel I/O port så som vanligt har jag väl missat ngn register inställning, vad kan det vara? Bry er inte oim uart delen. den ska jag mecka med sen

datablad
http://ww1.microchip.com/downloads/en/D ... 41441B.pdf

Kod: Markera allt

#define  OUT PORTA.F2

char uart_rd;

void main(){

  PORTA=0b00000000;
  ANSELA=0b000000000;
  C1ON_bit=0;
  SRLEN_bit=0;
  UART1_Init(9600);
  delay_ms(100);


    while(1){
 //    UART1_Write_Text("test");
 //    if(UART1_Data_Ready){
 //       UART1_Read_Text(uart_rd, "test", 5);
//       if(uart_rd=="test")

      }
      OUT=1;
     delay_ms(500);
     OUT=0;
     delay_ms(500);
}
   // }

Re: Register 12F1840

Postat: 17 november 2016, 10:50:59
av Magnus_K
Ska det inte vara PORTA.B2?

En nolla för mycket i ANSELA också. Skriv bara "=0" om du ändå ska nolla hela det registret.

Re: Register 12F1840

Postat: 17 november 2016, 10:57:50
av newbadboy
Provade, hjälpte inte.

(Ibland har jag kört F ibland B beronde på krets. Är osäker på vilken som gäller.)

Edit. Vill minnas att jag alltid använder F faktiskt

Re: Register 12F1840

Postat: 17 november 2016, 10:58:41
av newbadboy
Kan tilläga att TX delen av UART funkar. DVS den skriver ut test

Re: Register 12F1840

Postat: 17 november 2016, 11:03:28
av ecenier
Använd LATA för att sätta IO-pinnar.
Använd TRISA för att sätta IO-pinnar till input eller output.

Kodsnuttarna nedan är för xc8-kompilatorn.

Kod: Markera allt

#include <xc.h>

#define OUT_PIN 2   // Motsvarar RA2
   :
   :
TRISA &= ~(1<<OUT_PIN);  // Du saknar den här raden som säter att IO-pinnen ska vara OUTPUT-pinne.
   :
   :
LATA |= (1<<OUT_PIN);
__delay_ms(500);
LATA &= ~(1<<OUT_PIN);
__delay_ms(500);
   :

Re: Register 12F1840

Postat: 17 november 2016, 11:21:43
av newbadboy
Ja TRISA ska det vara. Det har jag skrivit tusen ggr så det borde jag inte missat. Fick flytta måsvingen så att det skulle hamna i while1 loopen.

Nu funkar det. Fan vad blind man är ibland :(

Tack