تنظیم فیوزبیت ها اشتباهه مهندس.
همه ی ckselهارو بذار روی یک.
نمایش نسخه قابل چاپ
تنظیم فیوزبیت ها اشتباهه مهندس.
همه ی ckselهارو بذار روی یک.
سلام دوستان.اگه میشه یه راهنمایی کنید.
برنامه ای که آقا مرتضی زحمت کشیدن اینجا گذشتن که جا داره بازم ازشون تشکر کنم،اونجوری که من دیدم و تست کردم فقط میتونه داده از نوع byte ارسال یا دریافت کنه و قابلیت ارسال کاراکتر نداره مگه اینکه کاراکتر رو تو میکرو به کد تبدیل کنیم و تو برنامه کامپیوتر دوباره کدی که از میکرو به کامپیوتر ارسال میشه را به کاراکتر برگردونیم.
تا اینجا مشکلی نبود... حالا اگه بخوایم مثلا یه رشته کاراکتر مثل salam را از میکرو به کامپیوتر ارسال کنیم باید چطوری این کار رو انجام بدیم؟!
من یه کد نوشتم واسه ارسال از میکرو ولی جواب نداد :(
[LEFT]کد:
Dim Ch As String * 10
Dim A As String * 10
Dim Count As Byte
Dim Lenn As Byte
A = "salam"
.
.
.
.
If Pinc.5 = 1 Then
While Count < Lenn
Ch = Mid(a , Count , 1)
'Queue data to be sent on endpoint 2 (HID report)
If _usb_tx_status2._usb_txc = 1 Then
_usb_tx_buffer2(2) = Asc(ch) 'Put our Byte in the TX buffer
Call Usb_send(_usb_tx_status2 , 1) 'Send data to PC
End If
Count = 1 + Count
Wend
End If
اگه میشه کمک کنید
سلام، یه مشکل عجیب !!!
بالاخره من هم جواب گرفتم اما بعد از اینکه ویندوزو ریست کردم دوباره همون پیغام usb device not recognized رو میده
ممکنه این مشکلات مال این باشه که مدارم رو روی بردبورد بستم
همه جاش هم چک کردم اتصالاتش درسته
لطفا کمک کنید
سلام.نقل قول:
منم هم روی برد بورد بستم و هم مدارشو ساختم و گاهی اوقات همون پیغامو میده که وقتی یو اس بی رو قطع و وصل میکنم درست میشه البته وقتی سیم یو اس بی رو عوض کردم خیلی بهتر شده. امتجان کن.
ولی اگه دائم این پیفامو میده برنامه رو چک کن.:0013:
سلامنقل قول:
نوشته اصلی توسط hossein68y [Dear Guest/Member you can't see link before replyclick here to register]
ببین برنامه رو به این شکل تغییر بده.
If _usb_tx_status2._usb_txc = 1 and pinc.5=1 Then
While Count < Lenn
Ch = Mid(a , Count , 1)
_usb_tx_buffer2(2) = Asc(ch) 'Put our Byte in the TX buffer
Call Usb_send(_usb_tx_status2 , 1) 'Send data to PC
Count = 1 + Count
Wend
End If
من با یک حلقه 100 تایی انجام دادم و جواب گرفتم.
راستی اون pinc.5 چیه
سلام.ممنون از راهنماییتون.حتما انجام می دم ببینم چه نتیجه ای می گیرم.نقل قول:
نوشته اصلی توسط mehdi29665 [Dear Guest/Member you can't see link before replyclick here to register]
pinc.5 که تو برنامه send number آقا مرتضی بود دیگه. تو اون برنامه اگه pinc.5 رو 1 کنیم میکرو عدد را به کامپیوتر ارسال می کنه...
سلام.من این تغییری که گفتید اعمال کردم ولی نتیجه نگرفتم :( دوست عزیز اگه میشه سورس کد برنامه میکرو و کامپیوتر را اینجا آپلود کنید.نقل قول:
نوشته اصلی توسط mehdi29665 [Dear Guest/Member you can't see link before replyclick here to register]
من هم تغییر کوچیکی که تو برنامه send number آقا مرتضی انجام دادیم که بتونیم یک رشته کاراکتر یا کلمه ارسال کنیم رو اینجا آپلود می کنم یه نگاه بندازی...
سلام به همگی
من می خوام یه همچین ارتباطی با usb رو با نرم افزار labview ایجاد کنم، یعنی ارسال و دریافت داده
کسی میتونه راهنماییم کنه که چطور این سخت افزار آقای رحیمی رو به labview بشناسونم و داده رد و بدل کنم.
ممنون
با سلام به جناب آقای رحیمی
تشکر میکنم بابت آموزش اتصال avr به پورت usb ولی من که کلا از این مقاله ناامید شدم چون مدار تست led رو کاملا درست بستم و پروگرام هم کردم ولی توسط ویندوز شناسایی نمیشه و کار نمیکنه !!! اگه مشکلم رو حل کنید ممنون میشم. در ضمن ویندوز من سون هست و کامپایلر بسکام ورژن 2.0.7.3
اگر با لپ تاپ و ویندوز 7 64 بیت هستین طبیعیه یکم اذیت کنهنقل قول:
شما مکان اتصال به یو اس بی رو این شکلی بستین ؟ (منظورم دیود های زنرش هست {اینو از مدار دیگه برداشتم})
[Dear Guest/Member you can't see link before replyclick here to register]
[Dear Guest/Member you can't see link before replyclick here to register]
برای لپ تاپ باید این شکلی باشه وگرنه این ارور رو میده
[Dear Guest/Member you can't see link before replyclick here to register]
[Dear Guest/Member you can't see link before replyclick here to register]
با تشکر فراوان از آقای رحیمی عزیز.
در اتصال این سخت افزار به سیستم به نظر من نوع سیم خیلی مهمه
چون من با یک سیم 20 سانتی که از نظر طولی مناسب بود نتونستم جواب بگیرم ولی موقعی که از سیم پرینترم که به حساب کیفیتش مرغوبتر بوددر عوض طولش یک و نیم متر بوذ استفاده کردم بدون مشکل ارتباط برقرار شد.
الانم 2 تا برد درست کردم و خیلی راحت دارم استفاده میکنم.
در ضمن ناگفته نماند از لپ تاپ و ویندوز سون دارم استفاده میکنم که اوایل اذیت میکرد ولی الان مشکلی ندارم.
نا امید نشو مهندس جان ، حتما یه جای کارت می لنگه. من هر 4 تا مثال رو روی بردبرد بستم و جواب گرفتم. دوستان دیگه هم که جواب گرفتن ، پس مشکل از یه جای کار شماست.نقل قول:
تشکر میکنم بابت آموزش اتصال avr به پورت usb ولی من که کلا از این مقاله ناامید شدم
سلام مهندس جان
من اون مداری که با آی سی 3.3 ولت هستش رو بستم اگه اشکال داره با دیود هم امتحان میکنم ولی چون دیود با این ولتاژ رو نداشتم و توی مقاله هم گفته بود آی سی اولویت داره واسه همین این مدار رو استفاده کردم
باید به محل قرار گیری اون مقاومت 1.5 کیلو دقت کنی. اون خیلی مهمه. با 3.3 ولت که راحت باید جواب بگیری. تنظیم فیوزبیت هات درسته؟
کسی می دونه چطور می شه چند مبدل adc را با هم راه اندازی کرد و مقدار هر همشون رو از طریق پورت usb به کامپیوتر ارسال کرد؟
این برنامه میکرو هستش
کد:$hwstack = 40
$swstack = 40
$framesize = 50
$regfile = "m8def.dat"
$crystal = 12000000
$lib "swusb.lbx"
$external _swusb
$external Crcusb
Declare Sub Usb_reset()
Declare Sub Usb_processsetup(txstate As Byte)
Declare Sub Usb_send(txstate As Byte , Byval Count As Byte)
Declare Sub Usb_senddescriptor(txstate As Byte , Maxlen As Byte)
Declare Function Crcusb(buffer() As Byte , Count As Byte) As Word
'*************************** Begin USB Configuration ***************************
$include "USB-Configurations.bas"
$include "swusb-includes.bas"
'**************************** USB Interrupt And Init ***************************
'Set all the variables, flags, and sync bits to their initial states
Call Usb_reset()
Const _usb_intf = Intf0
Config Int0 = Rising
On Int0 Usb_isr Nosave
Enable Int0
'******************************** Configurations *******************************
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Enable Interrupts
'*********************************** Variables *********************************
Dim Resetcounter As Word
Dim Idlemode As Byte
Dim Device_configured As Byte
Dim I As Word
Dim All_adc As Byte
'********************************
Dim Sum5 As Word
Dim Sum4 As Word
Dim Sum3 As Word
Dim Sum2 As Word
'********************************
Dim Adc5 As Word
Dim H5 As Byte
Dim L5 As Byte
'********************************
Dim Adc4 As Word
Dim H4 As Word
Dim L4 As Byte
'********************************
Dim Adc3 As Word
Dim H3 As Byte
Dim L3 As Byte
'********************************
Dim Adc2 As Word
Dim H2 As Byte
Dim L2 As Byte
'********************************** Main Program *******************************
Do
Resetcounter = 0
'Check for reset here
While _usb_pin._usb_dminus = 0
Incr Resetcounter
If Resetcounter = 1000 Then
Call Usb_reset()
End If
Wend
'Check for received data
If _usb_status._usb_rxc = 1 Then
If _usb_status._usb_setup = 1 Then
'Process a setup packet/Control message
Call Usb_processsetup(_usb_tx_status)
Elseif _usb_status._usb_endp1 = 1 Then
End If
'Reset the RXC bit and set the RTR bit (ready to receive a new packet)
_usb_status._usb_rtr = 1
_usb_status._usb_rxc = 0
End If
Sum5 = 0
Sum4 = 0
Sum3 = 0
Sum2 = 0
If Device_configured = 1 Then
For I = 1 To 10
'*********************
Adc5 = Getadc(5)
Sum5 = Sum5 + Adc5
'*********************
Adc4 = Getadc(4)
Sum4 = Sum4 + Adc4
'*********************
Adc3 = Getadc(3)
Sum3 = Sum3 + Adc3
'*********************
Adc2 = Getadc(2)
Sum2 = Sum2 + Adc2
Waitms 50
Next
End If
'*********************
Adc5 = Sum5 / 10
L5 = Low(adc5)
H5 = High(adc5)
'*********************
Adc4 = Sum4 / 10
L4 = Low(adc4)
H4 = High(adc4)
'*********************
Adc3 = Sum3 / 10
L3 = Low(adc3)
H3 = High(adc3)
'*********************
Adc2 = Sum2 / 10
L2 = Low(adc2)
H2 = High(adc2)
' Send data (2 bytes) to PC
If _usb_tx_status._usb_txc = 1 Then
_usb_tx_buffer4(2) = H4
_usb_tx_buffer4(3) = L4
Call Usb_send(_usb_tx_status4 , 2)
End If
If _usb_tx_status._usb_txc = 1 Then
_usb_tx_buffer3(2) = H3
_usb_tx_buffer3(3) = L3
Call Usb_send(_usb_tx_status3 , 2)
End If
If _usb_tx_status._usb_txc = 1 Then
_usb_tx_buffer2(2) = H2
_usb_tx_buffer2(3) = L2
Call Usb_send(_usb_tx_status2 , 2)
End If
Loop
End
'******************** Descriptors stored in EEPROM or FLASH ********************
$include "USB-Descriptors.bas"
'******************************** Subroutines **********************************
$include "USB-Functions.bas"
من هر کاری کردم فقط یک دونه رو می شد راه اندازی کرد و همه رو نتونستم
برنامه ویژال بیسیک
کد:Public Class Form1
Private Const VendorID = &HAAAA 'Replace with your device's
Private Const ProductID = &HEF02 'product and vendor IDs
' read and write buffers
Private Const BufferInSize As Short = 8 'Size of the data buffer coming IN to the PC
Private Const BufferOutSize As Short = 8 'Size of the data buffer going OUT from the PC
Dim BufferIn(BufferInSize) As Byte 'Received data will be stored here - the first byte in the array is unused
Dim BufferOut(BufferOutSize) As Byte 'Transmitted data is stored here - the first item in the array must be 0
'*****************************************************************
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ConnectToHID(Me)
End Sub
'*****************************************************************
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs)
DisconnectFromHID()
End Sub
Public Sub OnPlugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
ToolStripStatusLabel1.Text = "PSC CONNECTED"
End If
End Sub
Public Sub OnUnplugged(ByVal pHandle As Integer)
If hidGetVendorID(pHandle) = VendorID And hidGetProductID(pHandle) = ProductID Then
hidSetReadNotify(hidGetHandle(VendorID, ProductID), False)
' ** YOUR CODE HERE **
ToolStripStatusLabel1.Text = "PSC DISCONNECTED"
End If
End Sub
Public Sub OnRead(ByVal pHandle As Integer)
Dim H5 As Byte
Dim L5 As Byte
Dim ADC5 As Integer
Dim volt5 As Single
Dim H4 As Byte
Dim L4 As Byte
Dim ADC4 As Integer
Dim volt4 As Single
Dim H3 As Byte
Dim L3 As Byte
Dim ADC3 As Integer
Dim volt3 As Single
Dim H2 As Byte
Dim L2 As Byte
Dim ADC2 As Integer
Dim volt2 As Single
If hidRead(pHandle, BufferIn(0)) Then
H5 = BufferIn(7)
L5 = BufferIn(8)
H4 = BufferIn(5)
L4 = BufferIn(6)
H3 = BufferIn(3)
L3 = BufferIn(4)
H2 = BufferIn(1)
L2 = BufferIn(2)
End If
ADC5 = H5
ADC5 = ADC5 << 8 'Shift ADC_Value to Left 8 Time
ADC5 = ADC5 Or L5
volt5 = (ADC5 * 5) / 1024 + 0.004883 'Calculate Analog Voltage Value
TextBox1.Text = volt5
TextBox2.Text = ADC5
V_progressbar4.Increment(1)
V_progressbar4.Value = TextBox1.Text * 20
ADC4 = H4
ADC4 = ADC4 << 8 'Shift ADC_Value to Left 8 Time
ADC4 = ADC4 Or L4
volt4 = (ADC4 * 5) / 1024 + 0.004883 'Calculate Analog Voltage Value
TextBox3.Text = volt4
TextBox4.Text = ADC4
V_progressbar3.Increment(1)
V_progressbar3.Value = TextBox3.Text * 20
ADC3 = H3
ADC3 = ADC3 << 8 'Shift ADC_Value to Left 8 Time
ADC3 = ADC5 Or L3
volt3 = (ADC3 * 5) / 1024 + 0.004883 'Calculate Analog Voltage Value
TextBox7.Text = volt3
TextBox8.Text = ADC3
V_progressbar2.Increment(1)
V_progressbar2.Value = TextBox7.Text * 20
ADC2 = H2
ADC2 = ADC2 << 8 'Shift ADC_Value to Left 8 Time
ADC2 = ADC2 Or L2
volt2 = (ADC2 * 5) / 1024 + 0.004883 'Calculate Analog Voltage Value
Label33.Text = volt2
Label35.Text = ADC2
V_progressbar1.Increment(1)
V_progressbar1.Value = Label33.Text * 20
LAB3.Text = V_progressbar1.Value
End Sub
'*****************************************************************
Public Sub OnChanged()
Dim pHandle As Integer
pHandle = hidGetHandle(VendorID, ProductID)
hidSetReadNotify(hidGetHandle(VendorID, ProductID), True)
End Sub
End Class
ممنون بابت ای آموزش ارزشمند.
سلام به همگی -با دستکاری کردن کتاب خانه و دو هفته تلاش بی وقفه و برنامه نویسی زیاد توانستم تمام کانال های انالوگ رو راه اندازی کنم و در کامپیوتر نمایش دعم
خدارو شکر ، پس بی زحمت فایل های پروژه رو اینجا قرار بدید تا بقیه هم اگه خواستن بتونن استفاده کنن.نقل قول:
سلام به همگی -با دستکاری کردن کتاب خانه و دو هفته تلاش بی وقفه و برنامه نویسی زیاد توانستم تمام کانال های انالوگ رو راه اندازی کنم و در کامپیوتر نمایش دعم