Porting code to new PIC


Closed Thread
Results 1 to 13 of 13

Hybrid View

  1. #1
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by mackrackit View Post
    Dave, why is it that when I download the sample code for the above, I get a "symbol not previously defined SSPCON" The only difference I've made is to remove the LCD lines in the example and added the line to inc a hw file which was an edited version of the same file I used for my thermostat project

    Code:
    ASM 
      __CONFIG    _CONFIG1H, _OSC_HSPLL_1H
      __CONFIG    _CONFIG2L, _PWRT_ON_2L  
      __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
      __CONFIG    _CONFIG3H, _PBADEN_OFF_3H
      __CONFIG    _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L
    ENDASM
    
    
    DEFINE OSC 48 
    
    ADCON1 = $0F
    clear
    
    DEFINE LCD_DREG  PORTB           ' LCD Data port
    DEFINE LCD_DBIT  0               ' starting Data bit (0 or 4)
    DEFINE LCD_EREG  PORTB           ' LCD Enable port
    DEFINE LCD_EBIT  5               '     Enable bit  (on EasyPIC 5 LCD)
    DEFINE LCD_RSREG PORTB           ' LCD Register Select port
    DEFINE LCD_RSBIT 4               '     Register Select bit   (on EasyPIC 5 LCD)
    DEFINE LCD_BITS  4               ' LCD bus size (4 or 8 bits)
    DEFINE LCD_LINES 4               ' number of lines on LCD
    DEFINE LCD_COMMANDUS 2000        ' Command delay time in us 
    DEFINE LCD_DATAUS 50             ' Data delay time in us
    The example code below
    Code:
    ' Name        : SPIMAST.pbp
    ' Compiler    : PICBASIC PRO Compiler 2.6
    ' Assembler   : PM or MPASM
    ' Target PIC  : 40-pin 16F or 18F
    ' Hardware    : Lab-X1, Lab-X2 or similar
    ' Oscillator  : 4MHz internal or external
    ' Keywords    : LCDOUT, HARDWARE SPI MASTER
    ' Description : PicBasic Pro program to read and write to SPI slave
    ' using the hardware synchronous serial port. Connect SDI(master) to
    ' SDO(slave), SDO(master) to SDI(slave), AND SCK(master) to SCK(slave).
    ' Common ground is required.
    '
    ' Sends ascii "?" to request data, waits for a "!" to begin receiving data.
    ' Expects to find the ADC conversion value in the 6th position of the received
    ' string.
    '
    INCLUDE "hw.pbp"
    
    SSPEN VAR SSPCON.5   ' SSP Enable bit
    CKP   VAR SSPCON.4   ' Clock Polarity Select
    SMP   VAR SSPSTAT.7  ' Data input sample phase
    CKE   VAR SSPSTAT.6  ' Clock Edge Select bit
    SSPIF VAR PIR1.3     ' SPI interrupt flag
    
    i VAR BYTE           ' loop counter
    a VAR BYTE[6]        ' Holds 6 characters read from slave
    
       ADCON1 = 7        ' Set PORTA and PORTE to digital
       Low PORTE.2       ' LCD R/W line low (W)
       Pause 100         ' Wait for LCD to start up
    
       TRISC = 0         ' set PORTC I/O
       SSPEN = 1         ' enable SPI pins
       CKP = 0           ' clock idle low
       CKE = 0           ' transmit on idle to active transition
       SSPIF = 0         ' clear buffer full status
       SMP = 0           ' sample in middle of data
                    
    mainloop:
       GoSub getdata     ' initiate conversion and receive data
       LCDOut $fe, 1, STR a\5, DEC a[5] ' display received string
       Pause 100
       GoTo mainloop     ' do it forever
    
    getdata:                                        
       SSPBUF = "?"      ' send ? to start conversion
       GoSub letclear    ' wait for buffer to clear
       IF SSPBUF<>"!" Then getdata ' wait for reply (!)
    
       For i = 0 to 5    ' loop for 6 characters
         SSPBUF = 0      ' write to SSPBUF to start clock
         GoSub letclear  ' wait for receipt
         a[i] = SSPBUF   ' store received character in array
       Next i            ' get next character
       Return
    
    letclear:
       IF SSPIF = 0 Then letclear ' wait for SPI interupt flag
       PauseUs 25         ' 25uS fudge factor
       SSPIF = 0          ' reset flag
       Return
    
       End
    PIC is the same 18F4580 used for my Thermostat project - Help !!

  2. #2
    Join Date
    Jul 2003
    Posts
    2,405


    Did you find this post helpful? Yes | No

    Default

    Check those datasheets...

    This PIC only has SSPCON1 or SSPCON2.
    Regards,

    -Bruce
    tech at rentron.com
    http://www.rentron.com

  3. #3
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Bruce View Post
    Check those datasheets...

    This PIC only has SSPCON1 or SSPCON2.
    You beat me to it - I was wading through the datasheet and was basically going to post that question --- SSPCON1 compiles OK

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts