12f675_fuse_about_to_blow!


Results 1 to 40 of 929

Threaded View

  1. #26
    Join Date
    Feb 2010
    Location
    I live in the UK
    Posts
    562


    Did you find this post helpful? Yes | No

    Default

    Hi Henrik,

    How does this look? I went for the 'select case' in the end, I had to think for a while (nothing new there) but got there in the end.

    Code:
    ANSEL   = %00000000    'Disable analog select so ports work as digital i/o.
    CMCON0  = %00000111    'Disable analog comparators.
    TRISA   = %00000000    'Set PORTA as OUTPUT.
    PORTA   = %00000000    'Set PORTA pins all low.
    TRISC   = %00000000    'Set PORTC as OUTPUT.
    PORTC   = %00000000    'Set PORTC pins all low.
    
    DEFINE OSC 4
    
    NUM1 VAR BYTE
    
    OP VAR BYTE
    
    NUM2 VAR BYTE 
    
    TOTAL VAR BYTE
    
    
     
    MAIN:
    PAUSE 7000
    SEROUT2 PORTC.3, 16780, ["Please send NUM1", 10, 13] 
    PAUSE 500
    HIGH PORTA.5          'Shows data sent
    PAUSE 1000
    LOW PORTA.5
    
    PAUSE 250
    SERIN2 PORTC.5, 16780, [DEC NUM1]'MODE 16780 = 2400 BAUD INVERTED
    PAUSE 500
    HIGH PORTA.5          'Shows data arrived
    PAUSE 1000
    LOW PORTA.5
    
    PAUSE 250
    SEROUT2 PORTC.3, 16780, ["Please send Operator + - * /", 10, 13]  
    PAUSE 500
    HIGH PORTA.5          'Shows data sent
    PAUSE 1000
    LOW PORTA.5
    
    PAUSE 250
    SERIN2 PORTC.5, 16780, [OP] 'MODE 16780 = 2400 BAUD INVERTED
    PAUSE 500
    HIGH PORTA.5          'Shows data arrived
    PAUSE 1000
    LOW PORTA.5
    
    PAUSE 250
    SEROUT2 PORTC.3, 16780, ["Please send NUM2", 10, 13] 
    PAUSE 500
    HIGH PORTA.5          'Shows data sent
    PAUSE 1000
    LOW PORTA.5
    
    PAUSE 250
    SERIN2 PORTC.5, 16780, [DEC NUM2]'MODE 16780 = 2400 BAUD INVERTED
    PAUSE 500
    HIGH PORTA.5          'Shows data arrived
    PAUSE 1000
    LOW PORTA.5
    
    Select case OP
    CASE "+"
    TOTAL = NUM1 + NUM2
    CASE "-"
    TOTAL = NUM1 - NUM2
    CASE "*"
    TOTAL = NUM1 * NUM2
    CASE "/" 
    TOTAL = NUM1 / NUM2
    END SELECT
    
    pause 250
    SEROUT2 PORTC.3, 16780, [DEC TOTAL, 10,13]
    PAUSE 250 
    GOTO MAIN
    I did another version using IF-THEN as you showed me.

    Code:
    PAUSE 250
    IF OP = "+" Then
    Total =  Num1 + Num2
    
    PAUSE 250
    IF OP = "+" Then
    Total =  Num1 + Num2
    ENDIF
    
    PAUSE 250
    IF OP = "-" Then
      Total =  Num1 - Num2
    ENDIF
    
    PAUSE 250
    IF OP = "*" Then
      Total =  Num1 * Num2
    ENDIF
    
    PAUSE 250
    IF OP = "/" Then
      Total =  Num1 / Num2
    ENDIF
    Last edited by LEDave; - 17th April 2010 at 20:43.

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