Count RB0... on RB7


Closed Thread
Results 1 to 23 of 23

Hybrid View

  1. #1


    Did you find this post helpful? Yes | No

    Smile

    Hello mister e,

    I sit down it it mistakes, the following code works OK, what I want is to put another entrance RB1 to count the pulses and another exit RB6 and that it stores them in the eeprom.

    Thank you

    the code :

    TRISB=%00000011 ' Set RB0,RB1 to input, others to output

    OPTION_REG.7=0 ' Enable internal pull-up on PORTB

    LED VAR PORTB.7 ' connected between RB7 and GND via resistor
    ClkIn var PORTB.0 ' connected between RB0 and GND
    ClrEEP var PORTB.1 ' connected between RB1 and GND

    Apulse VAR BYTE ' store the amount of pulse
    Data @0,0 ' set count @ 0 at programming time
    led=0 ' LED=OFF

    ' //////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    ' To Reset the value in the EEPROM, press on ClrEEP button while
    ' applying power. When the command is accepted, the LED will
    ' stay ON for 1 second
    ' //////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    '
    if clreep=0 then ' is ClrEEP pushbutton is pressed
    write 0,0 ' Reset the pulse count in EEPROM
    led=1 ' LED = ON
    pause 1000 ' wait 1 sec
    led=0 ' LED=OFF
    endif '

    Read 0, Apulse ' Read count from internal eeprom

    repeat
    if clkin=0 then
    while clkin=0 : wend
    pause 50
    apulse=apulse+1
    WRITE 0,apulse ' save count in the internal EEPROM
    endif
    until apulse=10
    led=1

    Here:
    goto here




    Quote Originally Posted by mister_e
    I tried to understand but and i'm still not sure of the question. BTW i did the following, let me know if it do what you're looking for. Case not, let me know in more details or with a drawing. Sometimes it help my single brain cell to figure out the question
    Code:
        TRISB=%00001111     ' Set RB0 to input, others to output
        
        OPTION_REG.7=0      ' Enable internal pull-up on PORTB
        
        LED     VAR PORTB.7 ' connected between RB7 and GND via resistor
        LED1    VAR PORTB.6
        BOT     VAR PORTB.1
        ClkIn   var PORTB.0 ' connected between RB0 and GND
        
        Apulse  VAR BYTE    ' store the amount of pulse
        Apulse1 var byte
    
        data @0,0,0    
        read 0,apulse
        read 1,apulse1
        
        led = 0
        led1= 0
    
    paso1:
        repeat
            if clkin=0 then
                while clkin=0 : wend
                pause 100
                apulse=apulse+1
                write 0,apulse
                endif
    
            if BOT=0 then
                while BOT=0 : wend
                pause 100
                apulse1=apulse1+1
                write 1,apulse1
                endif
    
            until (apulse=7) or (Apulse1=5)
        
        if apulse=7 then
            led=1
            else
                led1=1
            endif
    
        goto paso1

  2. #2


    Did you find this post helpful? Yes | No

    Smile

    Hello mister e,

    The code to count and to store the I finish pulse in the eeprom this very well, what I want is to add the same thing in RB1 and RB6 and it also stores it in the eeprom.

    Thank you




    @ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _LVP_OFF & _BODEN_ON

    TRISB=%00000001 ' Set RB0 to input, others to output

    OPTION_REG.7=0 ' Enable internal pull-up on PORTB

    LED VAR PORTB.7 ' connected between RB7 and GND via resistor
    ClkIn var PORTB.0 ' connected between RB0 and GND

    Apulse VAR BYTE ' store the amount of pulse
    Data @0,0 ' set count @ 0 at programming time

    led=0
    Read 0, Apulse ' Read count from internal eeprom

    repeat
    if clkin=0 then
    while clkin=0 : wend
    pause 50
    apulse=apulse+1
    WRITE 0,apulse ' save count in the internal EEPROM
    endif
    until apulse=10
    led=1

    Here:
    goto here





    Quote Originally Posted by Leonardo
    Hello mister e,

    I sit down it it mistakes, the following code works OK, what I want is to put another entrance RB1 to count the pulses and another exit RB6 and that it stores them in the eeprom.

    Thank you

    the code :

    TRISB=%00000011 ' Set RB0,RB1 to input, others to output

    OPTION_REG.7=0 ' Enable internal pull-up on PORTB

    LED VAR PORTB.7 ' connected between RB7 and GND via resistor
    ClkIn var PORTB.0 ' connected between RB0 and GND
    ClrEEP var PORTB.1 ' connected between RB1 and GND

    Apulse VAR BYTE ' store the amount of pulse
    Data @0,0 ' set count @ 0 at programming time
    led=0 ' LED=OFF

    ' //////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    ' To Reset the value in the EEPROM, press on ClrEEP button while
    ' applying power. When the command is accepted, the LED will
    ' stay ON for 1 second
    ' //////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
    '
    if clreep=0 then ' is ClrEEP pushbutton is pressed
    write 0,0 ' Reset the pulse count in EEPROM
    led=1 ' LED = ON
    pause 1000 ' wait 1 sec
    led=0 ' LED=OFF
    endif '

    Read 0, Apulse ' Read count from internal eeprom

    repeat
    if clkin=0 then
    while clkin=0 : wend
    pause 50
    apulse=apulse+1
    WRITE 0,apulse ' save count in the internal EEPROM
    endif
    until apulse=10
    led=1

    Here:
    goto here
    Attached Images Attached Images  

  3. #3


    Did you find this post helpful? Yes | No

    Smile

    Hello to all,

    Somebody can help me with this please.

    Thank you

  4. #4
    Join Date
    Sep 2004
    Location
    Mentor, Ohio
    Posts
    352


    Did you find this post helpful? Yes | No

    Smile

    Hi Leonardo,

    Mr E. has done a great job (As usual!) of providing code for you. But if you wired your project as shown in the drawing then this is where you are having the difficulty.

    In your .bmp image you show using pull down resistors. This means your inputs are at 0vdc until the button is pressed and when you press the push button you are applying +5vdc. Your code is looking for 0v to create the activity to occur.

    "if clreep=0 then ' is ClrEEP pushbutton is pressed
    write 0,0 ' Reset the pulse count in EEPROM
    led=1 ' LED = ON
    pause 1000 ' wait 1 sec
    led=0 ' LED=OFF
    endif '

    Read 0, Apulse ' Read count from internal eeprom

    repeat
    if clkin=0 then
    while clkin=0 : wend
    pause 50"

    Turn on the internal weak pull ups and tie the other end of your push buttons to ground. To protect the PIC's inputs put 100 ohm resistors in line with the swtich and also tie MCLR to +5vdc through a 1k resistor.

    This should solve your problem.

    BobK
    Last edited by BobK; - 16th September 2005 at 03:11. Reason: More thoughts

Similar Threads

  1. COUNT is not counting again
    By jellis00 in forum mel PIC BASIC Pro
    Replies: 33
    Last Post: - 19th June 2009, 05:52
  2. Can't get COUNT to count
    By jellis00 in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 24th March 2009, 00:14
  3. Timer RB0...RB7 on RA1
    By Leonardo in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 26th September 2005, 01:38
  4. Count command
    By hawk72501 in forum mel PIC BASIC Pro
    Replies: 1
    Last Post: - 6th September 2005, 20:04
  5. Count RB0... on RB7
    By Leonardo in forum mel PIC BASIC Pro
    Replies: 7
    Last Post: - 26th August 2005, 00:13

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