Nieuws:

Nu in MSM 244 PRAKTIJK: Een kasteeltje uit Forex * Een diorama uit de mouw schudden: een tutorial door Evan Daes

Hoofdmenu

seriële communicatie.

Gestart door conducteur, 30 mei 2013, 21:03:53 PM

conducteur

I²C en RS485 zitten blijkbaar al in mijn PIC ingebakken die ik gebruik (16f887). Voor dit projectje zal ik wat programmeertalen moeten leren, want mijn Flowcode is maar zeer beperkt met deze communicatietechnieken.


Het voornaamste wat ik dus mis om hiermee aan de slag te gaan zijn de commando's... Op school hebben we nu al een zeer beperkte basis van C gezien (3 lessen), dus als ik daar mee verder zou kunnen doen is die basis al bruikbaar en moet ik niet van 0 te beginnen.


Tenzij er natuurlijke een andere high-level programmeertaal bestaat die wat eenvoudiger zelfstandig aan te leren is en ook voldoende functionaliteiten heeft.


Ik zal toch eens moeten kijken voor de aankoop van een programmer, want mijn huidige is van school geleend en moet ik dus zeer binnenkort teruggeven.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Steam.N

Rian, als je met PIC werkt, vind je bij Velleman een goeie programmer (K8076) .
Knutselgroeten !  Jean       TP-I (B) & TP-II (DR) - N - DC - Handbediening - Zelfbouw  { Sedelocus - De Feniks - Pira-N's Crossing - Turnhout NEEB - Scrap Yard }

PeterC

Citaat van: Steam.N op 02 juni 2013, 22:43:32 PM
Rian, als je met PIC werkt, vind je bij Velleman een goeie programmer (K8076) .

Helaas wel één probleem:

BELANGRIJK

niet compatibel met een USB naar seriële poort (RS232) omvormer!


Ik heb geen PC meer met een 'echte' seriële poort...

De PicStartPlus werkt wel met een USB-Seriëel omzetter maar is dan wel een heel pak duurder...



Antwoord verplaatst naar http://forum.modelspoormagazine.be/index.php/topic,17593.msg210911.html#msg210911
Groetjes, Peter


Geert

Ik heb al eens PIC's geprogrammeerd voor seriële communicatie in assembler.  Maar ik raad je aan dit te doen in een iets hogere programmeertaal, C of JAL. Je zit met een enorme hoeveelheid databytes, en probeer dat maar eens in assembler bij te houden en te verwerken...

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

conducteur

Assembler begin ik (voorlopig) niet aan. Ga eens Peter zijn JAL-pagina bekijken, of eens zoeken naar wat C-info.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Havoc

C is goed bruikbaar hiervoor (eigenlijk voor alles bruikbaar). Enig nadeel van C is dat het je handje niet vasthoudt. Je kan alles programeren, ook dat wat je beter niet zou doen... Vermits daar bij een vorige werkgever modems en router in geprogrameerd werden moet het zeker werken.
Met vakantie voor onbepaalde duur.

conducteur

Hoe bedoel je met 'wat je beter niet zou programmeren?'
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Havoc

C laat je toe te doen wat je wil en doet dat ook. Dus als je meer geheugen toekent dan je hebt dan is dat geen probleem. C controleert weinig, arrays zijn pointers, als het ene type in het andere past is het ok of jij dat nu een char, boolean of integer noemt is eender. Je kan dan ook veel doen. Maar evenveel misdoen. Moderne compilers en ide's gaan wel helpen. Maar bvb als je geheugen toekent moet je het ook zelf terug vrijgeven. Bij C gaat dat niet automatisch. Het vegeeft geen fouten.
Met vakantie voor onbepaalde duur.

Sattrickske

Daarom is C code ook veel efficiënter dan de zogenoemde 4de en 5de generatie programmeertalen.  Je moet verdomd goed beseffen wat je doet of je gaat gegarandeerd de mist in.  Hoe dichter een taal dichter bij de menselijke taal komt, des te inefficienter ze wordt; maar hoe meer 'controles' er ingebouwd worden (declaratieve types).  Ze wordt wel steeds gemakkelijker om te gebruiken.
Bij mij is het als volgt: op m'n werk Java.  Voor m'n hobby projecten C, C++ en assembler.  Assembler vooral als de timing precies goed moet zitten, zoniet C/C++.

Huugooke

#54
Op mijn Spectrum gebruik ik nog altijd Fortran, op mijn C128 gaat het beter mer Cobol. 8)

Havoc

Fortran en Cobol... nu laat je ook je leeftijd zien Hugo! Voor mijn eindwerk heb ik ook nog Fortran gebruikt. Fantastisch als je integralen van 2-de orde gemodificeerde Besselfuncties moet berekenen. Voor controllertoepassingen echter zijn er betere keuzes te maken.

C is een goede keuze en eigenlijk niet moeilijk. De basis is snel te begrijpen. Er zijn ook veel libraries beschikbaar dus tenzij je echt het onderste uit de kan wil moet je niet elke keer het wiel uitvinden. Maar je moet er je hoofd bijhouden. Eenmaal je ingewikkelde datatypes begint op te zetten wordt het gauw complexer. Ik ben er onlangs mee herbegonnen na 20 jaar en het begint stilaan terug te komen. (maar ik ben er nog lang niet)
Met vakantie voor onbepaalde duur.

Huugooke

Tja, ik programmeerde dan ook al toepassingen, voor buitengewoon onderwijs, toen de meeste hier aanwezigen nog een glinstering in hun papa's oog waren. En toen moest je roeien met de riemen die je had. Pascal!Commodore Super Basic! Qbasic!  And finally...C.

Sattrickske

Citaat van: Huugooke op 06 juni 2013, 20:24:55 PM
Pascal!Commodore Super Basic! Qbasic!  And finally...C.
Been there, done that!  Waar is die tijd gebleven?  De peek's en de poke's van m'n goeie ouwe C64 (heb 'm nog altijd).

MickeyMouse

Onze 8051-achtige toestanden waren in het begin volledig in assembler. Je was wel verplicht van eerst eens goed na te denken en dan pas te beginnen programmeren/testen.
Daarna werd het een combinatie van C en Assembler, was al heel wat eenvoudiger om een betere structuur aan te houden in de sw.
Tijdskritische en/of lowlevel-zaken (timer interrupts, seriele interups, ...) werden wel bijna steeds in assembler geschreven. Op 8051's was dit nu eenmaal stukken efficienter dan C. Ook nog een paar toepassingen in PLM geschreven op die dingen.

Geert

Havoc

Ja mannen, dat begint hier op een meeting van de gepensioneerden te lijken, we gaan de jeugd nog op slecht ideën brengen :D
Met vakantie voor onbepaalde duur.