CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to support@ccsinfo.com

What PART Number for PDIP 40 PIN

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
soulweed



Joined: 20 Oct 2006
Posts: 23

View user's profile Send private message

What PART Number for PDIP 40 PIN
PostPosted: Mon Mar 05, 2007 6:45 pm     Reply with quote

PIC18* 40 PIN PDIP two UART ,please me
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Mon Mar 05, 2007 7:33 pm     Reply with quote

1. Go to the parametric search page on the Microchip site for the PIC18:
http://www.microchip.com/ParamChartSearch/params.aspx?branchID=1004&mid=10&lang=en&pageId=74

2. Go about halfway down the page. Select these boxes:
Quote:
x 2 AUSART x 2 EUSART


3. Then go the bottom of the page and click the "Search" button.

4. When it finishes searching, click the "Detail" button.

5. Now you have a list of PICs. Scroll over to the right side
of the page. You can see the column for "Pin Count".

That will give you the answer.
future



Joined: 14 May 2004
Posts: 330

View user's profile Send private message

PostPosted: Tue Mar 06, 2007 7:10 pm     Reply with quote

I remember these...

18F452
18F458
18F4520
18F4525
18F4620

The flash size increases downwards.
PCM programmer



Joined: 06 Sep 2003
Posts: 21708

View user's profile Send private message

PostPosted: Tue Mar 06, 2007 7:56 pm     Reply with quote

He wants two UARTs:
Quote:
PIC18* 40 PIN PDIP two UART ,please me
soulweed



Joined: 20 Oct 2006
Posts: 23

View user's profile Send private message

PostPosted: Wed Mar 07, 2007 5:23 am     Reply with quote

I saw in microchip website ,any part Number is PDIP has two UART .I am so sorry.

however I fighting for my senior project

so i need to know about I get INT of my software UART because
I'm try to use MAX3100 ,it doesn't work.i don't know WHY ?

I think problem may be occurs HARDWARE more than Sofware because

when I coding I try to SIMMULATE in software and see Timing Diagram,
it correct.Then I think it ERROR By hardware.


Code:



#include <18f452.h>

#fuses XT,NOWDT,NOPROTECT,NOLVP
#use delay(clock=4000000)
#use rs232(baud=19200,xmit=PIN_C6,rcv=PIN_C7) 

#define MAX3100_CS     PIN_C0
#define MAX3100_IRQ    PIN_B0
#define MAX3100_CLK    PIN_C3
#define MAX3100_SDI    PIN_C2
#define MAX3100_SDO    PIN_C4

static unsigned char recv1;
static unsigned char recv2;
static unsigned char recv3;
static unsigned char recv4;
static unsigned char recv5;
static unsigned char recv6;
static unsigned char flagSPI;

/*   ##############   Main   ##################   */
unsigned char read_spi(unsigned char data);
void readMAX3100(unsigned char command,unsigned char data);
void spiputc(unsigned char data);

#INT_EXT
void interrupt_spi(void)
{
        output_low(MAX3100_CS);
       
        recv3 = read_spi(0x00);
        recv4 = read_spi(0x00);
       
       delay_us(1); 
        output_high(MAX3100_CS);
      output_low(MAX3100_CLK);
      output_low(MAX3100_SDI);
    //    output_low(MAX3100_IRQ);
      printf(spiputc,"%2X",recv4);
   //   printf("%2X\n\r",recv4);
      flagSPI = 0;
}

unsigned char read_spi(unsigned char data){
   unsigned char x;
   unsigned char temp;
   temp = 0;
   for(x=0;x<8;++x)
     {
      if(data & 0x80){
        output_high(MAX3100_SDI);
     }
      else{
        output_low(MAX3100_SDI);
     }
        output_low(MAX3100_CLK);
        delay_us(1);
        temp = ((temp <<1) | input(MAX3100_SDO));
        output_high(MAX3100_CLK);
        delay_us(1);

        data = data << 1;       

     }
   output_low(MAX3100_SDI);
   return(temp);
}


void spiputc(unsigned char data)
{
   unsigned int temp;

   readMAX3100(0x00,0x00);
    while((recv1!=0x40) & (recv1!=0xC0))
   {
      readMAX3100(0x00,0x00);
   }

   readMAX3100(0x80,data);

   readMAX3100(0x00,0x00);
   while((recv1==0x00))
   {
      readMAX3100(0x00,0x00);
   }
}


void readMAX3100(unsigned char command,unsigned char data)
{
        output_high(MAX3100_CS);
      output_low(MAX3100_CLK);
      output_low(MAX3100_SDI);
       delay_us(1); 
        output_low(MAX3100_CS);
       
        recv1 = read_spi(command);
        recv2 = read_spi(data);
       
       delay_us(1); 
        output_high(MAX3100_CS);
      output_low(MAX3100_CLK);
      output_low(MAX3100_SDI);
}

void main(void)
{


 unsigned  char  command,SPIcommand,temp1,temp2;
 unsigned int max3100Read; 

   output_high(MAX3100_CS);
   output_low(MAX3100_CLK);
   output_low(MAX3100_SDI);

    ext_int_edge( 0, H_TO_L);
     enable_interrupts(INT_EXT);
     enable_interrupts(GLOBAL);

      readMAX3100(0xC4,0x0A); //Write Config Command and set baud to 9600
     
for(;;){
     
      readMAX3100(0x00,0x00);
        while((recv1==0x00))
      {
         readMAX3100(0x00,0x00);
      }
      delay_ms(500);
    flagSPI = 0;

   printf(spiputc," TEST USART-SPI Max3100   \n\r");
 
      if(flagSPI==1)
      {
         flagSPI = 0;
      }
         
   }
 
 }

/*   ##############   END   ##################   */

Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group