تنظیم فیوزبیت ها اشتباهه مهندس.
همه ی 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 رو میده
ممکنه این مشکلات مال این باشه که مدارم رو روی بردبورد بستم
همه جاش هم چک کردم اتصالاتش درسته
لطفا کمک کنید
سلام
ببین برنامه رو به این شکل تغییر بده.
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 چیه
سلام.من این تغییری که گفتید اعمال کردم ولی نتیجه نگرفتم دوست عزیز اگه میشه سورس کد برنامه میکرو و کامپیوتر را اینجا آپلود کنید.
من هم تغییر کوچیکی که تو برنامه send number آقا مرتضی انجام دادیم که بتونیم یک رشته کاراکتر یا کلمه ارسال کنیم رو اینجا آپلود می کنم یه نگاه بندازی...
ویرایش توسط hossein68y : 03-09-2012 در ساعت 12:34
سلام به همگی
من می خوام یه همچین ارتباطی با usb رو با نرم افزار labview ایجاد کنم، یعنی ارسال و دریافت داده
کسی میتونه راهنماییم کنه که چطور این سخت افزار آقای رحیمی رو به labview بشناسونم و داده رد و بدل کنم.
ممنون
با سلام به جناب آقای رحیمی
تشکر میکنم بابت آموزش اتصال avr به پورت usb ولی من که کلا از این مقاله ناامید شدم چون مدار تست led رو کاملا درست بستم و پروگرام هم کردم ولی توسط ویندوز شناسایی نمیشه و کار نمیکنه !!! اگه مشکلم رو حل کنید ممنون میشم. در ضمن ویندوز من سون هست و کامپایلر بسکام ورژن 2.0.7.3
اگر با لپ تاپ و ویندوز 7 64 بیت هستین طبیعیه یکم اذیت کنه
شما مکان اتصال به یو اس بی رو این شکلی بستین ؟ (منظورم دیود های زنرش هست {اینو از مدار دیگه برداشتم})
http://m-ghayour.persiangig.com/image/USB.jpg
برای لپ تاپ باید این شکلی باشه وگرنه این ارور رو میده
http://m-ghayour.persiangig.com/image/er.png
با تشکر فراوان از آقای رحیمی عزیز.
در اتصال این سخت افزار به سیستم به نظر من نوع سیم خیلی مهمه
چون من با یک سیم 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"
ویرایش توسط morteza_rk : 07-11-2012 در ساعت 23:54
من هر کاری کردم فقط یک دونه رو می شد راه اندازی کرد و همه رو نتونستم
برنامه ویژال بیسیک
کد: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
ویرایش توسط morteza_rk : 07-11-2012 در ساعت 23:53
ممنون بابت ای آموزش ارزشمند.
سلام به همگی -با دستکاری کردن کتاب خانه و دو هفته تلاش بی وقفه و برنامه نویسی زیاد توانستم تمام کانال های انالوگ رو راه اندازی کنم و در کامپیوتر نمایش دعم
خدارو شکر ، پس بی زحمت فایل های پروژه رو اینجا قرار بدید تا بقیه هم اگه خواستن بتونن استفاده کنن.سلام به همگی -با دستکاری کردن کتاب خانه و دو هفته تلاش بی وقفه و برنامه نویسی زیاد توانستم تمام کانال های انالوگ رو راه اندازی کنم و در کامپیوتر نمایش دعم
.