free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
met VB niet nee. met C(rap) en C(rap)++ misschien later nog wel 
(TIS OM TE LACHEN HE !. zie dat ze hier weer beginnen flamen ... . Ik weet het, ik moet dringend eens een echte programmeertaal leren. Heeft er nog iemand het originele boek van Kemeny en Kurtz over de Basic met lijnnumers ?
, Anders is Basica van IBM wat in de ROm zat ook goed hoor. Kzal ook al vast maar zien om 'edlin' geinstalleerd te krijgen onder windows. kwestie van een goeie editor te hebben (VI is voor watjes))
enfin. de boel bolt nu.
er wordt nog ene beetje gesleuteld aan de DLL ( versie opvragen moeten we nog implementeren ) , alsook aan de Class
hier staat ie :
http://www.uploadarchief.net/files/download/USB%20vb.zip
Opgelet. Zorg dat je de laatste LibUSB en SYS driver hebt van Sourceforge.
Om Miserie te vermijden : het gaat om deze :
http://sourceforge.net/project/showfiles.php?group_id=78138&packag…
en je hebt de EXE file nodig ( libusb-win32-filter-bin-20060827.exe )
Lanceer die installer. Dit zorgt dat je de laatste Libusb.DLL en LibUSB.SYS hebt en dat de services geinstalleerd zijn en lopen.
Daarnaa kan je de boel zo lopen.
als je ene programma maakt met die VB code moet je ook libusbvb0.dll meegeven. dat is de wrapper library die alle pointer-shuffling doet ( de cdecl naar STDcall translatie )
om compatibility redenen kan de libusb0 niet aangepast worden ( dat spul moet blijven werken voor cygwin en al die andere vanaf linux geporteerde tools, en die werken alleen met cdecl calls. )
Dus daarvoor is die wrapper nodig.
Als je de Class gaat gebruiken in je project moet je zowel libusb.bas als usb_device.cls toevoegen aan je vb project.
ik ga nog een mini_libusb.bas maken die allen usbinit bevat (das de enige call die je nodig hebt buiten de class) ik kan die niet aanroepen vanuit de class omdat ik daarmee alle handles voor andere instances zou vernietigen. wat maakt dat je niet met meer dan 1 device teglijk zou kunnen bezig zijn. usb_init mag maar 1 keer aangeroepen worden in je programma.
En dan gaan we dat ook nog eens porteren naar VB2005 ...
Martijn v
KIS!!: Keep It Simple
'k krijg een beetje kriebels van al die DLL versies.
of is dit de laatste?
oeh, c kan ik (nog) niet,
Op 10 januari 2007 04:01:11 schreef free_electron:
, Anders is Basica van IBM wat in de ROm zat ook goed hoor.
basicA ? 'k heb een boekje:
Progcursus Mcirosoft BASIC (ook voor GW basis en BASICA)
geschreven door Nok van veen.
Eerste druk: 06-1983
voor oa CommodorePC 10, Tulip sysstem1, Corona, Philips P2500. ma die zal het wel nie weze 
zeg f_e, je had toch zo weinigtijd voor de CO_scoop? en dan ga je een beetje zitten proggen, zeg da ken nie hoor 
picsels
Volgend project: 7-seg gaming displays; dan dec-1982 labvoeding afmaken, dan funcgen met ad9833 afmaken, dan...
Op 10 januari 2007 04:01:11 schreef free_electron:
met VB niet nee. met C(rap) en C(rap)++ misschien later nog wel(TIS OM TE LACHEN HE !. zie dat ze hier weer beginnen flamen ... . Ik weet het, ik moet dringend eens een echte programmeertaal leren. Heeft er nog iemand het originele boek van Kemeny en Kurtz over de Basic met lijnnumers ?
, Anders is Basica van IBM wat in de ROm zat ook goed hoor.
Ach, deze gaat ook wel hoor.
En wil je het goed onder de knie wilt krijgen, begin dan hier 
Net 'test_libusb.exe' getest, de PIC Device wordt netjes herkend.
Data naar de PIC sturen ziet er in Delphi zo uit:
request := 1;
value := 0;
index := 1;
If assigned(usbDev) then Fout:= usb_control_msg(usbDev, USB_TYPE_VENDOR OR USB_RECIP_DEVICE, request, value, index, buffer, 0, 100);
Hoe stuur je in VB data naar de PIC ?
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
usbcontrolmsg ( my_handle,usb_type_vendor or usb_recip_device,request,value,index,buffer,0,100 )
zekerst ?
juist het zelfde.
maar met die class wordt dat simpeler . nog efkes geduld.
ik snap wel niet waarom je control_msg stuurt ...
Captnoord
mov eax, 0x666
(TIS OM TE LACHEN HE !. zie dat ze hier weer beginnen flamen ... . Ik weet het, ik moet dringend eens een echte programmeertaal leren. Heeft er nog iemand het originele boek van Kemeny en Kurtz over de Basic met lijnnumers ? , Anders is Basica van IBM wat in de ROm zat ook goed hoor. Kzal ook al vast maar zien om 'edlin' geinstalleerd te krijgen onder windows. kwestie van een goeie editor te hebben (VI is voor watjes))
Nou ja, ach als je zelf al zegt dat je weet wat voor flames er komen. Is het dan niet een beetje zo?
VB is een geweldige taal. Maar waarom is het zo dat het gros van de programma's in laten zoals C C++ Java C# wordt geschreven en niet in VB. Ach ik neem je een beetje in de zeik, maar ik ben wel van mening dat als je dit al met VB kan, dan kan je veel meer in de C related talen. Het is alleen even wennen......
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Mijn grootste frustratie is dat je met geen enkel andere taal ( buiten Vb om ) interactief kan debuggen.
programma in break zetten , 2 lijnen aanpassen , execution pointer verplaatsen , zonder te moeten hercompileren en MET behoud van data.
stel je hebt ene programma wat heel lang loopt. telkens na ongeveer 2 uur blokkeert het ... begin maar hoor in c .... 2 lijnen anapassen , hercompileren en opnieuw starten en hopen dat het deze keer wel goed gaat...
in vb : zet de boel in break als het probleem zich voordoet en je kan er net zolang aan frutselen tot je het probleem snapt en kan oplossen.
zo heb ik het met die libusb ook gedaan.
ik zet daar een aantal breakpoints in de sourcecode en ga dan in het 'immediate window' gewoon vb code uitvoeren in realtime. ik kan rondneuzen in memory , variabelen aanpassen en vanalles en nog wat.
der is niks krachtiger en leerrijker dan hands-on interactief te kunnen rondkoteren overal.
probeer dat maar eens in C ( of in eendert welke andere taal .... breakpoints zetten en variabelen opvragen lukt nog. de inhoud van een variablele veranderen is al een stuk moeilijker en in de meeste gevallen onmogelijk. efkes een of andere routine aanroepen tussendoor gaat helemaal niet, en de execution pointer verplaatsen kan ook al niet. triestig hoor. we zijn 2007 : get with it ! Zelfs in de tijd van de ponskaarten kon dat al. ( je kon een PDP11 in break zetten en efkes iets anders doen tussendoor ) ditto op veel van die andere 'monsters'
ik geef een stom voorbeeld. je hebt een programma wat data vergadert en in ram zet. op een bepaald punt schrijf je die weg naar een file. die file bevindt zich op een harde schijf op een server en die is nu net offline gegaan.... kiss your data goodbye.
in VB : runtime error . ga in break , je komt op de lijn terecht waar gepoogd is de file te openen. ( das hetgeen wat mislukt is )
pas de filename aan naar een andere naam en disc die wel bestaat , versleep de execution pointer naar de plaats waar die file gepoogd wordt te openen en druk F5.
klaar is kees. niks data kwijt , niks crash.
zo zijn er duizenden scenarios. : error hier ? momenteke ... klikkerdeklik tikkerdetik , opgelost , de boel bolt.
om dingen uit te zoeken is dat geweldig krachtig.
En dan die syntax van C.... al die haakjes en krullekes.
De helft is zo geschreven dat het onleesbaar is. je kan dingen op veel te veel manieren doen.
En waarom moet een regel nu eindigen in een ; ? kan die compiler nu gewoon niet de linefeed gebruiken ? die staat toch in die file die hij moet compileren. maak die compiler wat slimmer. waarom moet ik al dat werk doen ? de computer is er om mij te dienen en niet omgekeerd.
de computer is voor mij nu net geworden als een schroevendraaier : een stuk gereedschap. De tijd dat ik zelf mijn schroevendraaiers maakte is voorbij, ik heb daar geen goesting meer in. ( af en toe is dat toch nog eens nodig zoals nu bij die USB bollenwinkel. )
en Vb code leest als een 'tekst'. 2 jaar later is dat nog 'leesbaar'. Een stuk c 'formules' is al vele meer : miljaar waar zat ik met mijn gedachten. ik weet begot nie meer hoe dat hier in elkaar zit. en ik als doorwinterde c programameur natuurlijk geen commentaar in min code gezet. commentaar is voor watjes. If it was hard to write it should be hard to understand ...
enfin , das mijn visie.
een echte programmeur denkt daar misschien anders over. maar ik ben de eerste om toe te geven dat ik niks ken van programmeren. ik heb het nooit geleerd ( op die 3 onnozole programmatjes in Turbo Pascal uit mijn schooltijd na ) en veel technieken ken ik waarschijnlijk niet. het interesseert mij ook niet. die programmertaal is een stuk gereedschap , en ik gebruik liever ene waar je kan mee rondmodderen en dingen uitproberen hands-on dan ene waar je telkens opnieuw kan beginnen.
zo bedrijf ik ook electronica : pak de scoop, multimeter , soldeerpook en MEET het. 'Papier electronica' is niet voor mij. 2 dagen rekenen en dan schiet het nog in brand als je er stroom op zet ...
Nog zo iets : error tralala in line tralie : missing ';'...
awel zet die ';' daar dan. onnozele compiler !
De compilers zijn zo slim tegenwoordig dat ze u exact kunnen vertellen wat er waar mis is . Dat ze het dan meteen oplossen ook he !
In VB heb je al diene zever niet. Autocompletion behoedt u voor 'tikvauten' (enne, ik ben een krak in tikvauten hoor , lees mij posts maar) en als je ergens aan haakje vergeet of een string vergeet af te sluiten wordt het automatisch proper opgelost door de IDE. En case-sensitive onzin heb je ook al niet. waar is dat nu voor nodig ? gebruik gewoon een andere naam punt uit. De compiler klopt die naam toch plat naar een address , dus tkost u niks penalty.
en een Vb programma kan je al starten met syntax fauten er in. een C programma niet. stap voor stap debuggen is veel makkelijker en minder frustrerend dan eerst 500 syntax problemen oplossen en dan zien dat het algoritme niet juist was ...
enfin genoeg rant en rave.
.NET talen kunnen ook gewoon interactief debuggen. Edit & continue, een immediate window, variabelen bekijken/wijzigen, exceptions afvangen/interactief afhandelen, etc. etc.
Zelfs Visual C++ heeft al jaren edit & continue, code wijzigen en direct doorgaan met je programma kon wel gewoon. Net als execution pointers aanpassen of variabelen wijzigen. Natuurlijk zit je gebonden aan de beperkingen die inherent zijn aan een low level taal, je moet oppassen wat je doet maar dat is ook gewoon iets wat je kan leren.
Zelf heb ik in het verleden veel met VB gewerkt en hoewel het een leuke taal is om te beginnen is het vreselijk qua structuur. Microsoft wil er niet voor niets vanaf en over naar VB.NET.
De syntax is ook maar iets persoonlijks. Geef mij maar accolades en code op meerdere regels in plaats van alles uit te schrijven als tekst.
C(++) heeft z'n functie, het blijft een van de meeste low-level talen die toch nog goed te gebruiken is. Zelf is C# momenteel m'n favoriet en snap ik ook wel het nut van hogere level talen. Het debuggen kan ook veel interactiever en vanwege de extra tussenlaag is die flexibeler dan bij low level talen. Maar VB is daar dus absoluut niet alleen in.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
en we gaan verder.
heeft er iemand voorbeelden voor PIC waarbij een USb device gemaakt wordt ? GEEN HID DEVICE !
der zijn voorbeelden zat om een HID device te maken in picbasic, mikrobasic,mbasic picbasic pro , proton + en weetikveel wat.
o en nog iets : zonder precompiled libary ! ik wil de source zien ...
met andere woorden de code die de pic initialiseert.
[Bericht gewijzigd door free_electron op ]
...heeft er iemand voorbeelden voor PIC waarbij een USb device gemaakt wordt ? GEEN HID DEVICE !...
Site: http://pe.ece.olin.edu/ece/projects.html
Code: http://pe.ece.olin.edu/ece/projects/lab1_18F2455.zip
[Bericht gewijzigd door MMSoft op ]
Jep, das ook de code die ik gebruik. Geen HID, maar een vendor specific device. Werkt prima samen met libusb.
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
??? niks gezien ...
stuur nog eens.
gebruik mijne gmail account .
[Bericht gewijzigd door free_electron op ]
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Op 10 januari 2007 21:57:16 schreef free_electron:
usbcontrolmsg ( my_handle,usb_type_vendor or usb_recip_device,request,value,index,buffer,0,100 )zekerst ?
juist het zelfde.
maar met die class wordt dat simpeler . nog efkes geduld.
ik snap wel niet waarom je control_msg stuurt ...
Op 12 januari 2007 01:36:58 schreef free_electron:
en we gaan verder.heeft er iemand voorbeelden voor PIC waarbij een USb device gemaakt wordt ? GEEN HID DEVICE !
....
Ik had de indruk dat je er nog druk mee bezig was...
[Bericht gewijzigd door MMSoft op ]
free_electron
Silicon Member
Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM
Die heb ik toch gegeven:
Op 12 januari 2007 18:47:26 schreef MMSoft:
[...]
Site: http://pe.ece.olin.edu/ece/projects.html
Code: http://pe.ece.olin.edu/ece/projects/lab1_18F2455.zip
[Bericht gewijzigd door MMSoft op ]