bootom maus sa pic 18f4550

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
kovacevic 2002
Posts: 4
Joined: 06-05-2025, 09:04

bootom maus sa pic 18f4550

Post by kovacevic 2002 »

Pozdrav svima, dali bi mi neko pomogao naime radim u pbp-u, a nasao sam jedan cod za bootom maus napisan u programu C, posto nemam C compiler i nikada nisam radio u programu C dali bi mi neko iskompajlirao cod, i proverio ga daliu je dobar.Mis sa dugmicima mi treba za sina koji ide u graficku skolu, treba mu za crtanje, kupio bi ga, ali nema nigde da se kupi.
Unapred hvala evo coda:

Code: Select all

// PIC18F4550 USB Mouse CCS C code

#include <18F4550.h>
#fuses  HSPLL PLL2 CPUDIV1 USBDIV VREGEN NOMCLR
#use delay(clock = 48000000)
#include <usb_desc_mouse.h>
#include<pic18_usb.h>
#include<usb.c>
#use fast_io(B)

char out_data[4];
void main(){
  setup_adc_ports(NO_ANALOGS);                          // Configure all AN pins as digital
  output_b(0);                                          // PORTB initial state
  set_tris_b(0x3F);                                     // Configure RB0 to RB5 as inputs
  port_b_pullups(TRUE);                                 // Enable PORTB pull-ups
  usb_init_cs();                                        // Initialize USB hardware
  delay_ms(1000);
  while(TRUE){
    usb_task();
    if(usb_enumerated()){                               // If the device has been enumerated by the PC
      while(!input(PIN_B0)){
        out_data[0] = 0;
        out_data[1] = 1;
        out_data[2] = 0;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
      }
      while(!input(PIN_B1)){
        out_data[0] = 0;
        out_data[1] = -1;
        out_data[2] = 0;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
      }
      while(!input(PIN_B2)){
        out_data[0] = 0;
        out_data[1] = 0;
        out_data[2] = 1;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
      }
      while(!input(PIN_B3)){
        out_data[0] = 0;
        out_data[1] = 0;
        out_data[2] = -1;
        out_data[3] = 0;
        usb_put_packet(1, out_data, 4, USB_DTS_TOGGLE);
      }
      while(!input(PIN_B4)){
        out_data[0] = 1;
        out_data[1] = 0;
        out_data[2] = 0;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
      }
      while(!input(PIN_B5)){
        while(!input(PIN_B5));
        out_data[0] = 3;
        out_data[1] = 0;
        out_data[2] = 0;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
      }
        out_data[0] = 0;
        out_data[1] = 0;
        out_data[2] = 0;
        out_data[3] = 0;
        usb_put_packet(1,out_data,4,USB_DTS_TOGGLE);
    }
  }
}
Attachments
SEMA
SEMA
sema.jpg (27.58 KiB) Viewed 565 times
kovacevic 2002
Posts: 4
Joined: 06-05-2025, 09:04

Re: bootom maus sa pic 18f4550

Post by kovacevic 2002 »

Jos bi bolje bilo ako bi mi neko ovaj kod iskucao u pbp-u jel pbp donekle znam pa bi mogao da usporim miš, ili da ga ubrzam.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7883
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: bootom maus sa pic 18f4550

Post by pedja089 »

Ja negde imam kod za tastaturu. Za misa sam isto imao ali ne mogu naci sad...
Vidi na picbasic.co.uk
kovacevic 2002
Posts: 4
Joined: 06-05-2025, 09:04

Re: bootom maus sa pic 18f4550

Post by kovacevic 2002 »

Pedja hvala na odgovoru, al nema gde nisam kopao i nigde nema a i engleski govorim dosta slabo pa mi je to problem, ima kod u pbp folderu, ali u kodu fali mnogo tog.Dali mozes ti pokusati naci kod, al treba mi da ima i dva tastera kao na misu.Unapred hvala.
kovacevic 2002
Posts: 4
Joined: 06-05-2025, 09:04

Re: bootom maus sa pic 18f4550

Post by kovacevic 2002 »

Evo koda koji sam nasao na ME Labs sajtu, ali tu nema definisanih tastera ...Uopste mi kod nije jasan jedino ako nepomera kursor u sve strane u tim petljama.

Code: Select all

' Name        : USBMOUSE.pbp
' Compiler    : PICBASIC PRO Compiler 2.6
' Assembler   : MPASM
' Target PIC  : PIC18F4550 or similar type
' Hardware    : LAB-XUSB Experimenter Board
' Oscillator  : 20MHz external
' Keywords    : USBSERVICE, USBINIT, USBIN, USBOUT
' Description : PICBASIC PRO USB sample program for PIC18F4550 to
' move mouse cursor.
' Compilation of this program requires that specific support files be
' available in the source directory.  You may also need to modify the
' file USBDESC.ASM so that the proper descriptor files are included. For
' detailed information, see the file PBP\USB18\USB.TXT.
'

Define OSC 48

Include "hid_desc.bas"

buffer  Var Byte[4]
loopcnt Var Byte
state   Var Byte

   USBInit
   buffer[0] = 0
   buffer[1] = 0
   buffer[2] = 0
   buffer[3] = 0

movecursor:
   For state = 0 To 3       ' Move through each state
     For loopcnt = 1 To 16  ' 16 steps in each direction
       Branch state, [up, right, down, left]
up:
        buffer[1] = 0
        buffer[2] = -2
        Goto endgame
down:
        buffer[1] = 0
        buffer[2] = 2
        Goto endgame
left:
        buffer[1] = -2
        buffer[2] = 0
        Goto endgame
right:
        buffer[1] = 2
        buffer[2] = 0

endgame:
        USBService                    ' Must service USB regularly
        USBOut 1, buffer, 4, endgame  ' Send buffer to endpoint 1
     Next loopcnt
   Next state
   Goto movecursor      ' Do it forever

   End
Post Reply