Device = 16C765
XTAL = 24
USB_DESCRIPTOR = "MOUSDESC.ASM"
USB_CLASS_FILE = "HIDCLASS.ASM"
USB_COUNT_ERRORS = False
USB_SHOW_ENUM = False
Dim BUFFER[8] as Byte
Dim LOOPCNT as Byte
Dim DIRECTION as Byte
Symbol LED = PORTA.5
Symbol USB_WRITE_ERROR = _USB_WRT_ERR.WORD
Symbol USB_BTO_ERROR = _USB_BTO_ERR.WORD
Symbol USB_OWN_ERROR = _USB_OWN_ERR.WORD
Symbol USB_BTS_ERROR = _USB_BTS_ERR.WORD
Symbol USB_DFN8_ERROR = _USB_DFN8_ERR.WORD
Symbol USB_CRC16_ERROR = _USB_CRC16_ERR.WORD
Symbol USB_CRC5_ERROR = _USB_CRC5_ERR.WORD
Symbol USB_PID_ERROR = _USB_PID_ERR.WORD
ON_INTERRUPT Goto USBINT
Goto START USBINT:
Movlw (Service@USBInt >> 8)
Movwf PCLATH
Btfsc PIR1, USBIF
Call (Service@USBInt)
Context Restore
START:
ALL_DIGITAL = True
Low LED
USBInit
High LED
STR BUFFER = 0,0,0,0,0,0,0,0
MOVECURSOR:
DIRECTION = 0
Repeat
LOOPCNT = 0
Repeat
If DIRECTION = 0 Then BUFFER#1 = 0 : BUFFER#2 = -2 : Goto SENDIT
If DIRECTION = 1 Then BUFFER#1 = -2 : BUFFER#2 = 0 : Goto SENDIT
If DIRECTION = 2 Then BUFFER#1 = 0 : BUFFER#2 = 2 : Goto SENDIT
If DIRECTION = 3 Then BUFFER#1 = 2 : BUFFER#2 = 0
SENDIT:
USBOut 1, BUFFER, 4, SENDIT
Inc LOOPCNT
Until LOOPCNT = 16
Inc DIRECTION
Until DIRECTION = 4
Goto MOVECURSOR
что делает это прога мне не очень понятно.
Где ставится название продукта, компании, версия продукта, и хорошо а вот чем мне из компа послать в мк допустим цифру 25 ? Скорость нужна не ниже 1мб/сек, 12 мне черезчур много но и это можно, если это проще организовать... Вообщем попробую разобраться с этим примером.
А пример мне нужен такой, чтоб мк отвечал на какието команды из компьютера по юзби например цифрой 100 обратно в компьютер, всякие проверки ацп я сам сделаю...
Станок будет сделан качественно и с осторожностью, алюминиевые профили kanya итд, ходовые винты(нечто похожее на швп но большего размера изза того что будет сделан самостоятельно, цена смешная в отличии от швп), датчики положений самодельные которые надо запатентовать(гораздо эфективней чем любой другой который я видел и дешевле), двигатели полностью заменяющие гидравлические и пневматические - особенность работает от электричества и огромная мощность(поднял 3кг при токе 200ма и 5вольт) тоже надо патентовать, станок после постройки будет модернизироватся , напрмер через несколько месяцев после того как я его сделаю будет разработана приставка позволяющая делать обьёмный(или 3д монтаж) мелких деталей типа смд и tqfp - позволяет делать схемы например в виде кубика, микросхемы и все детали залиты эпоксидом поэтому маловероятно возможное копирование изделия, и вовсе невозможно(таких видов схемотехники я не видел такчто наверно тоже надо патент)))
Патенты продавать не собираюсь, патриот России...
Добавлено (15.04.2009, 4:26:29)
---------------------------------------------
Этот пример мне больше понятен, но некоторые команды я никогда не видел в PBP... Repeat wend например.
Device = 18F4550
XTAL = 48
REMINDERS OFF
USB_DESCRIPTOR = "CDCDESC.INC" ' Point to the CDC DESCRIPTOR file (located in the INC\USB_18 folder)
Dim PP0 as Byte SYSTEM ' USBPOLL status return
Dim USB_BUFFER as String * 20 ' USB buffer
ADIN_RES 10 ' Set the resolution to 10
ADIN_TAD FRC ' Choose the RC osc for ADC samples
ADIN_STIME 100 ' Allow 100us for charge time
Dim AD_RESULT as ADRESL.Word
Dim VALUE as Word
Dim VOLTS as Byte
Dim MILLIVOLTS as Byte
Symbol CARRY_FLAG = STATUS.0 ' High if microcontroller does not have control over the buffer
Symbol TRNIF = UIR.3 ' Low if USB Busy
Delayms 200 ' Wait for things to stabilise
Clear
Repeat
USBPoll ' Wait for the USB interface to become attached
Until PP0 = %00000110
TRISA.0 = 1
ADCON1 = %10001110
ADCON2 = %10000000
While 1 = 1
USBPoll ' Keep the USB interface alive
AD_RESULT = ADIN 0 ' Read the ADC
VALUE = 489 * (AD_RESULT / 10) ' Quantasize the result
VOLTS = VALUE / 10000 ' Split off the Volts
MILLIVOLTS = (VALUE // 10000) / 100 ' Split off the MilliVolts
USB_BUFFER = Str$(Dec1,VOLTS) + "." + Str$(Dec2,MILLIVOLTS) + " Volts\r"
Repeat
USBOut 3, USB_BUFFER, AUTO ' Poll the USB and transmit the string from endpoint 3
Until CARRY_FLAG = 0 ' Keep trying if the microcontroller does not have control over the buffer
Repeat : Until TRNIF = 1 ' Wait for completion before continuing
Wend ' Go wait for the next buffer input
Добавлено (15.04.2009, 6:11:52)
---------------------------------------------
http://startusb.narod.ru/ попробую понять ассемблер который там=))), у меня контроллёр должен быть 80выводный.