Re:Problém s nastavením USARTu pro 18F1220

talanda.moje2@seznam.cz talanda.moje2@seznam.cz
Středa Květen 21 19:33:55 CEST 2008


Tak nakonec jsem na správné řešení přišel sám.

Kdyby to náhodou někoho zajímalo, tak správně to má vypadat takto:

#pragma config OSC=INTIO2
#pragma config PWRT=ON
#pragma config BOR=ON
#pragma config BORV=42
#pragma config WDT=OFF
#pragma config LVP=OFF

#include <p18f1220.h>
#include <string.h>
#include <delays.h>
#include <portb.h>
#include <usart.h>

void Delay(int k){
 int i,j;
 for(i=0;i<20000;i++) for(j=0;j<k;j++);
}

void main(void)
{


char usartTX2[]="ATD737635740;a";
char * usartTX2u=usartTX2;
int q=1;

OSCCONbits.IRCF2 = 1;
OSCCONbits.IRCF1 = 1;
OSCCONbits.IRCF0 = 1;

PORTB=0x00;
TRISB= 0b11111101;			//nastaví většinu portů na PORTB jako vstupní a TX jako výstupní

OpenUSART(USART_TX_INT_OFF &
             USART_RX_INT_ON &
             USART_ASYNCH_MODE &
             USART_EIGHT_BIT &
             USART_CONT_RX &
             USART_BRGH_HIGH,25);	


Delay(1);
usartTX2[13]=0x0D;
putsUSART(usartTX2);

}	//end Main





> ------------ Původní zpráva ------------
> Od:  <talanda.moje2@seznam.cz>
> Předmět: Problém s nastavením USARTu pro 18F1220
> Datum: 19.5.2008 21:55:25
> ----------------------------------------
> Hezký den,
> Vyrábím si sledovací systém ve kterém mimo jiné komunikuje mikrokontroler s
> mobilním telefonem a pořád nejsem schopný tu komunikaci nastavit. Nemoh by jste
> m někdo poradit, kde je v tom kódu chyba?
> 
> op. systém: XP  
> PIC: 18f1220
> telefon: siemens C35
> Compiler: C18 C-language compiler použitý v MPLAB
> programer: ICD2
> interní oscilátor a automatický reset
> 
> #pragma config OSC=INTIO2
> #pragma config PWRT=ON
> #pragma config BOR=ON
> #pragma config BORV=42
> #pragma config WDT=OFF
> #pragma config LVP=OFF
> 
> #include <p18f1220.h>
> #include <string.h>
> #include <delays.h>
> #include <portb.h>
> #include <usart.h>
> 
> 
> 
> void main (void)
> {
> 
> char usartTX2[]="ATD737635740;";
>   
> OSCCONbits.IRCF2 = 1;
> OSCCONbits.IRCF1 = 1;
> OSCCONbits.IRCF0 = 1;
> OSCCONbits.SCS1 = 0;
> OSCCONbits.SCS0 = 0;
> 
>     //The next 5 initializations are set according to the PIC datasheet
>     //requirements for USART recieve/trans
> 
>     TRISBbits.TRISB1 = 1;    //TX set to output
>     TRISBbits.TRISB4 = 1;   //RX set to 1, but will be set to 0 by PIC for
> input(as specified in datasheet)
>     ADCON1bits.PCFG6 = 1;    //not sure what these next two are, but setting as
> specified in datasheet
>     ADCON1bits.PCFG5 = 1;
>     RCSTAbits.SPEN = 1;        //setting serial port enabled
>     
>     TXSTAbits.SYNC = 0;            //asynchronous mode
> //    PIE1.TXIE = 0;
> 
>     BAUDCTLbits.BRG16 = 0;    //8 bit transfer
>     TXSTAbits.BRGH = 1;        //BRGH high
>     TXSTAbits.TXEN = 1;        //enable transmit
> 
>   /*
>    * Open the USART configured as
>    * 8N1, 192000 baud, in polled mode
>    */
>   OpenUSART (USART_TX_INT_OFF &
>              USART_RX_INT_OFF &
>              USART_ASYNCH_MODE &
>              USART_EIGHT_BIT &
>              USART_CONT_RX &
>              USART_BRGH_HIGH, 25);   //[8000000/(19200*16)] - 1 = 25
> SPBRG= 25;
> putsUSART(usartTX2);	
>  
> }
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 
> 
> 



Další informace o konferenci Hw-list