hallo liebe µ-gemeinde, ich wollte schon länger mal programmieren anfangen, aber im netz gibt es so viele einführungen und pdfs etc. , das hat mich komplett überfordert. nun hab ich mich für ein buch entschieden dass mir relativ interessant vorkam und anscheinend auch schon öfters gekauft wurde: PIC-Mikrocontroller 50 Projekte für Anfänger udn Fortgeschrittene vom ELEKTOR Verlag nun hab ich mich mal n bissl in das buch eingelesen und so ziemlich alle projekte sind für den PIC16F877 ausgelegt! die programmiersprache ist JAL (just another language) wohl nicht so sehr bekannt, aber was ich bis jetz gelesen hab is es wohl für n anfang nich s schlechteste. und auch der support mit aktualisierungen, bauteillisten, softwareupdates etc scheint mir recht gut zu sein. mein problem ist nun, dass die leute in dem buch mit dem wisp628/wisp648 programmer arbeiten, der is mir zum einen zu teuer und vor allem kann ich mit nem sr232 anschluss nichts anfangen. ich brauch usb und so n usb sr232 adapter würde nochmal so viel kosten. nun hab ich mich auf die suche gemacht, was es so gibt und bin auf die sprut.de seite gestossen. dort hat er ja nun einige brenner zum selber basteln, die wohl auch schon recht beliebt sind. ausserdem waren einige vorschläge für fertige programmer. (ich bin auf der suche nach nem günstigen einsteiger dingens). der BFMP hat mich interessiert, aber der scheint nicht mehr gebaut/verkauft zu werden!? als alternative hab ich das PICkit2 gefunden. für etwa 30 euro. der würde mich interessieren, aber nun würd ich gerne wissen, da ich noch neuling bin, ob ich mit dem spaß haben werde, oder ob ich mir damit die zähne ausbeisse? hat vllt schon jemand anderes mit dem buch gearbeitet? oder mit der programmiersprache JAL? ich freue mich über schnelle und hilfreiche antworten, denn ich würde gern möglichst schnell loslegen! und möglichst preiswert (geldmässig gehts nich um s wollen mehr um s nich können) grüße rappl
Ich finde die sprut.de Seite ist so ziemlich die beste Einführung in Sachen 8Bit Pic-uController wo gibts, der sprut Brenner0 ist auf jeden Fall empfehlenswert und wenn man es hat kann man sich auch einen ICD2 Debugger/Programmer kaufen. Mit dem PICkit2 kann man sicherlich auch nichts verkehrt machen, allerdings habe ich ihn noch nicht eingesetzt. Zur Zeit benutzte ich einen ICD2-Clon dieser funktioniert problemlos und macht mich immer wieder aufs neue glücklich. Aber diese JAL Sprache erscheint mir doch ein wenig suspekt, für gewöhnlich wird in Sachen uController C oder Assembler eingesetzt. Gruß Harti Kraus
hallo und willkommen :-) ..vergiss die 16er-PICs zum anfangen, die waren zwar früher nicht schlecht (verhältnismässig) aber heute sind das produkt-reliquien, die einfach weitergeführt werden; und ja, vergiss auch gleich JAL! heute beginnste gescheiter mit den 18ern und C. damit ersparst du dir viel mühe und erreichst schneller erste erfolge. sprut ist erste nachschlag-adresse! da du offensichtlich nicht viel geld investieren willst -wieviel auch immer viel ist- schlage ich dir folgendes vor: - steckbrettchen mit einem PIC18Fxxx, ein paar LEDs und taster - ein programmer (spruts USB-brenner* oder PICkit2**) - lade MPLAB und C18 runter (beides gratis) und schreib ein paar blink-programme (tönt zwar langweilig, aber danach weisst du viel eher, was du willst und lernst grundsätzliches - jeder fängt so an) * der darin verwendete PIC muss von jemandem zuerst programmiert werden bevor der brenner funktioniert (das macht dir hier sicher jemand gratis, einfach nett fragen), mit diesem kannst du aber nicht debuggen ** kenne ich nicht, soll aber nicht schlecht sein (ultra-low-cost), ich verwende den ICD3 :-)) kostet aber auch einiges :-( und ICD2-clone ist sonst sehr empfehlenswert, aber kannst nicht gleich loslegen (zuerst zusammenbauen und den darin enthaltenen PIC ebenfalls zuerst von jemandem programmieren lassen) -> wenn du gerne bastelst, dann mach dir einen ICD2-clone, wenn du gleich loslegen willst, kaufste besser den PICkit2
Neben sprut.de möchte/kann ich noch folgende empfehlen: http://www.fernando-heitor.de/ http://www.holger-klabunde.de/ Zum 16F877: Es gibt auch den 16F877A, der ein paar kleine Unterschiede hat, ist z.B. beim Bau eines ICD2-Clones zu beachten. Da wird für den A-Typen ein andere Bootloader gebrucht. Zu JAL kann ich leider nichts sagen, habe die 12F/16F in Asm und 18F in C programmiert. Und, um mal "Jehova" zu sagen: Ich (persönlich) finde die PICs nicht so schlimm, wie hier immer wieder gern betont wird. Sicher, man muss schon die Doku richtig lesen, mit "try and error" kommt man freilich nicht sehr weit. Und das Banking bei Registern und Programmspeicher ist für Spagetti-Code-Programmierer ein echtes Problem. ;-)
Hallo PIC-Gemeinde, wo wir hier gerade bei PIC´s sind... kennt jemand ein Buch bzw. einen Link über Assembler für PIC24 bzw. dsPIC´s in deutsch? In englisch hab ich schon einiges gefunden, liest sich für mich leider nicht so leicht :-( Gruß, Steffen
Hallo gustav, dein Tipp war Gold wert. Das Buch kannte ich zwar schon, war mir aber bisher etwas zu teuer. Bei amazon gab es jetzt 1 Exemplar zum halben Preis, da hab ich natürlich gleich zugeschlagen :-))) Danke!
ihr wollt mir nun allen ernstes sagen, dass das geld für das buch ne fehlinvestition war!? =( jetz hab ich mich endlich mal zusammen gerauft und was verbünftiges gekauft und dann war s das falsche... ich würd sagen, dann kauf ich mir lieber erst mal den PICkit2, da weiß ich dass zumindest der programmer funktioniert, wenn ich (und ich glaub fest daran dass es so weit kommen wird^^) mal nach nem fehler suchen muss! und JAL ist wirklich tot? brauch ich s gar nich erst versuchen!? so n käse... trotzdem danke für die vielen schnellen antworten! =) grüße Rappl
Florian Rappel schrieb: > ausgelegt! die programmiersprache ist JAL (just another language) glaub nicht, daß die sehr verbreitet ist. Dürfte also für nen Anfänger nicht das richtige sein. Da möchte man Sprachen, die alle Welt spricht, z.B. C. > ich mit nem sr232 anschluss nichts anfangen. ich brauch usb und so n usb > sr232 adapter würde nochmal so viel kosten. Was ist an 4,80€ teuer? http://www.reichelt.de/?;ACTION=3;LA=2;GROUP=C6993;GROUPID=17;ARTICLE=58641;START=0;SORT=artnr;OFFSET=100;SID=27ZicBB6wQARsAABhbYG8198031c77678e5365c7bc44138dd274c Peter
könnt ihr mir denn ein vernünftiges buch für das programmieren von PIC µC in C vorschlagen? >>Was ist an 4,80€ teuer? hm gute frage... als ich so eins das letzte mal gesucht hab, als adapter für die übertragungsleitungen von SPS und Logo! haben die dinger um die 25 euro gekostet!
>Jal version 2 ist sehr gut, und ist nicht tot. >Das mit Jal stimmt. was ist dann da für n unterschied? das die alte version ganz tot, die neue aber richtig gut ist!? ich mein, die auflage des buches ist von 2009! die vermarkten doch kein buch von eienr sprache die nicht mehr "gesprochen" wird!?
Es gibt viele Unterschiede, prinzipell kommt die V2 von einem anderen Programmierer, welche einen open source basic compiler für pic geschrieben hat, welcher kompatibel zu einem kommerziellen Produkt war. Dieser Compiler wurde verändert, um Jal als frontend zu benutzen. Unterschiede, native Unterstützung von Rechnungen >16bit, Vorteile mit Arrays, 18f sowie 12f Unterstützung, Multitasking um die Signifikantesten zu nennen. Im prinzip baut Jalv2 nicht auf die sourcen von Jal auf. Hier einr readme file welches die Differenzen kurz anspricht, ist aber zimlich alt, also nicht up-to-date. Differences between Jal & PICJal ================================ Running the Compiler ==================== Arguments to the compiler: -hex arg : set the name of the hex file. The default is source.hex -asm arg : set the name of the asm file. The default is source.asm -rickpic : I work with the MarkIII, a 16f877 based board. The PIC comes with a built-in loader which requires that locations 0, 1, 2 are not touched 3 holds a GOTO to the first instruction -debug : show debugging output -s arg : set the search path. multiple paths are seperated by semi-colons -nofuse : don't include the config word in the assembly or hex files. Parser ====== No extra spaces are required. The first line should include one of the files in the chipdef directory! Amoung other things, these files define things required by the code generator (code size, data bank locations and sizes, eeprom location and size, configuration word location and size, stack depth) and create the various ``pragma target'' definitions! Variables ========= The following variable types have been introduced: SBYTE : signed, 8-bit value WORD : unsigned, 16-bit value SWORD : signed, 16-bit value DWORD : unsigned, 32-bit value SDWORD : signed, 32-bit value In addition, other byte sizes are defined as follows: SBYTE*n : create a signed, n * 8 bit value BYTE*n : create an unsigned, n * 8 bit value True bit fields are also introduced: BIT : as with JAL, this creates a boolean value. Any non-zero assignment sets the value to TRUE, and zero assignment sets the value to FALSE BIT*n : create an n-bit value. Assignment to this type follows bitfield assignment rules. Aka BIT*5 n n = y translates to: n = (y & 31) The byte order when storing variables is LSB...MSB. Variables are allocated out of all existing banks, and bank setup for variable access is automatic. The full format for variable definition is rather complex, but here's goes. Anything in braces '['..']' is optional; UPPER CASE denotes a keyword; single quotes denote character constants; cexpr is a constant expression VAR [[VOLATILE] type] identifier [ '(' cexpr ')' ] [ AT cexpr [ : bit ] | variable [ : bit ] | { cexpr1[, cexpr...] } ] [ IS variable ] [ '=' cexpr | '{' cexpr1, ... '}' ] type one of the predefined types (BYTE, SBYTE, ...) VOLATILE This value can change without notice and during assignment it cannot be used to hold intermediate results '('..')' sets up an array with cexpr entries. The array is accessed using identifier(n) where 0 <= n < cexpr AT cexpr[:bit] This variable is placed at location cexpr and that location will not be used during variable allocation. If type is BIT, the variable will exist at bit 0 at cexpr unless the [:bit] is used. AT variable[:bit] Like above, but use the same base as variable AT { cexpr1, ...} Like above, but this variable is mirrored at multiple locations. Currently this is limited to 4. Any read or write at any of the locations is assumed to be equivalent. (This is used by the databit reduction code). IS variable This simply creates an alias. This type must match the original variable type = cexpr Assign cexpr to this variable = {cexpr1,...} If this is an array, assign the following cexprs to the array. So, for a 10 element BYTE array x: VAR BYTE x(10) = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 } arrays can also be constant, in which case they reduce to a lookup table as follows: CONST BYTE x(10) = { 'a', 'b', 'c', 'd', 'e', 'f' } This will take no data or code space if it is only accessed via a constant subscript. It becomes a lookup table (requires codespace) if accessed via a variable subscript. A lookup table is limited to 255 entries regardless of type (for example, you can have a 255 entry DWORD lookup table). A variable must entirely fit within a bank. Expressions =========== Expressions follow the C promotion value promotion rules. Procedured & Functions ====================== Interrupts ---------- Any number of procedures can contain ``#pragma interrupt''. On an interrupt each procedure with ``#pragma interrupt'' is called, though there is no guarenteed order. A procedure containing the ``#pragma interrupt'' must take no parameters. Re-entrancy ----------- All procedures and functions are fully re-entrant so may be called from both interrupt and user routines. Forward Declaration ------------------- A function or procedure may be forward declared (declared without definition) by using the word ``forward'' in place of ``is''. Function/Procedure Declaration ------------------------------ No default parameters are allowed. No get/set procedures are automatically created when passing variables as volatile parameters Language ======== The OPERATOR keyword is not supported. The FOR command has changed as follows: FOR expr [USING var] LOOP [block] END LOOP ``USING var'' gives access to the looping variable which holds values from zero through (expr - 1). Also, expr is evaluated once before entering the block. Multiplication, division, and shifting are part of the language. Shifting is always done inline, whereas multiplication and division are implemented as functions. Only one version of each is created -- the one that can compute the maximum size required. For example: BYTE a, b, c c = a * b will create an 8-bit multiply function. BYTE a, b WORD c, d a = a * b c = c * d this creates a 16-bit multiply function that is called in both cases Jump Tables =========== Jump tables are not supported. There simply is no obvious way to implement them. My understanding is jump tables are guarenteed to be withing 256 bytes so an ``addwf pcl'' will always work. This simply isn't feasible (see the next topic). It appears most jump tables are really due to a lack of lookup tables. This is solved above (use constant arrays). Phases of Compilation ===================== The compiler consists of three parts 1. the parser converts text to p-code 2. the p-code is optimizied 3. the p-code runs through the back end to finally create the HEX file the interesting bit is the back end. Initially, every variable access and every branch contains the setup bits. During data bit optimization, all unnecessary data bits are removed. Finally, every unnecessary branch bit is removed. This is done in a loop: do remove all unnecessary branch bits while at least one bit was removed. Now, let's say we're trying to guarentee that a bit of code doesn't span a 256 byte boundary. We could add another phase, align jump tables, but by doing so we might end up pushing a routine far enough that we need some branch bits. This quickly becomes a mess.
>Differences between Jal & PICJal
PicJAL = JALV2 ?
in meinem buch hab ich nun gelesen dass es die neue version seit etwa
2006 gibt und dass das buch auch damit arbeitet!
also kann ich es doch noch benutzen!
Florian Rappel schrieb: > also kann ich es doch noch benutzen! Wie schon gesagt, ich glaube nicht, daß das für nen Anfänger die entscheidende Frage ist. Aber vielleicht bist Du ja der geborene Einzelkämpfer, der kaum Hilfe benötigt. Oder Du hast schon das super-duper JAL-Forum gefunden, wo auch viele online sind. Mein Eindruck ist aber, daß sich nun sogar bei den PICs C als Programmiersprache immer mehr durchsetzt. Bei 8051, AVR, MSP, ARM ist C längst etabliert, was bei einem späteren Wechsel der Architektur von Bedeutung sein kann. Peter
ich hab mit c schon n bissl angefangen zu programmieren! aber eben nur auf windows bzw dos-basis! also noch nichts mit µC und es war auch allgemein noch nich so viel! nun hab ich eben das buch gefunden, was auch 55 öre gekostet hat und nachdem ich schon n bissl drin rumgestöbert hab bin ich mir sicher dass ich allein mit dem buch schon recht weit kommen kann! und wenn das mal funktioniert dann kann ich mir auch nen anderen brenner bauen und wohl auch auf c umsteigen! ich brauch nun nur mal endlich was wo ich anfangen kann, sonst schieb ich s immer weiter vor mir her und kann immernoch nichts. und ich fand wirklich kein vernünftiges C buch auf deutsch! mit "architektur" meinst du µC-Marke !?
Jalv2 ist eine super Sprache, teilweise mächtiger als C, wegen div. Features, nur, generell nichts für Anfänger, da sehr wenig Doku, von Beispiele oder Libs ganz zu schweigen. Aber, es ist keine Sprache, um allein mit uC anzufangen. Und, Jal ist sehr Lib-lastig, sprich je nach gewünschten Features muß man bestimmte Libs inkludieren sowie deren Files updaten, nichts für eine ordentliche Programmierung zu lernen. Es ist sehr effektiv, aber nicht sehr für Anfänger geeignet. Nein, PicJal ist nicht JALv2. Von Jal gibt es zwei Implementationen, eine von Voti, und eine auf Sourceforge. JALv2 ist meines Wissens auch nicht auf Sourceforge. Ich glaube die Orginale, die von Voti wird PicJal genannt.
>und ich fand wirklich kein vernünftiges C buch auf deutsch! Bitte... http://openbook.galileocomputing.de/c_von_a_bis_z/
Und zum runterladen... http://download.galileo-press.de/openbook/c_von_a_bis_z/galileocomputing_c_von_a_bis_z.zip
Ich kann zu fast 100% dieses Buch hier empfehlen: PIC-Microcontroller: Programmierung in Assembler und C - Schaltungen und Anwendungsbeispiele für die Familien PIC18, PIC16, PIC12, PIC10 (Broschiert) http://www.amazon.de/PIC-Microcontroller-Programmierung-Assembler-Schaltungen-Anwendungsbeispiele/dp/3486585975/ref=sr_1_4?ie=UTF8&qid=1250352193&sr=8-4 Oder bei Google Books: http://books.google.de/books?id=xwSZdXu9U6gC&pg=PA411&dq=pic+mikrocontroller#v=onepage&q=pic%20mikrocontroller&f=false Sicherlich sprut.de ist auch sehr gut, aber ein richtiges Buch ist doch was anderes, gerade wenn man was nachschlagen will. Ich persönlich finde das Buch super und arbeite schon über ein Jahr damit. mfg, christian
Hab auch mit sprut angefangen , aber das Buch was Christian vorgeschlagen hat kann ich auch nur empfehlen.Kein Schnäppchen aber wirklich gutes Buch mit vielen Beispielen und es wird auch einiges zur Peripherie erklärt. Ich habe mir einen ICD2 Clone nachgebaut (z.B stolz.de.be ,gibts als rs232 und usb version) und kann dir das auch nur empfehlen. Nicht unbedingt wegen den Kosten, sondern weil du so viel über PICs und ihre Programmierung lernst. Voraussetzung dazu ist allerdings auch ein funktionierender Programmer ( da hab ich den von Sprut nachgebastelt), damit du das ICD2 überhaupt in Betrieb nehmen kannst. Am besten ist meiner Meinung nach ,wie bei anderen Controllern auch, du machst dir ein eva-board und legst z.B. alle portpins auf stiftleisten. Dann kannst du dir kleine Zusatzplatinen basteln (z.B. 7Segment-Anzeigen, RGB-LED, LC-Display usw.) und damit experimentieren. Macht echt Spass :-) . Am Anfang würd ich mit den Mid-Range PICs (16F8*) anfangen.Zuerst in Assembler, dannach in legerem C (z.B. mit dem CC5X Compiler, der lässt sich einfach in MPLAB einbinden). Da sieht man schon das son ein "kleiner" µC fürs meiste ausreicht. Und wenn du erstmal ein paar Stunden mit MPLAB (das ist die kostenlose Entwicklungsumgebung) verbracht hast, wirst du schnell alle Kniffe raus haben. Simulieren kann man damit ebenfalls hervorragend. Die Dokumentation der PICs ist wie ich meine die beste unter den Mikrocontrollern. Da hat Microchip sich wirklich mühe gegeben. Und wie gesagt bei Sprut gibt es auch einige kleine bis große Projekte die top beschrieben sind. grüsse
>Bitte... >http://openbook.galileocomputing.de/c_von_a_bis_z/ das scheint mir schon sehr umfangreich zu sein, aber es fällt kein wort über mikrocontroller!? darum geh ich davon aus, dass es weder n buch für programmer für n PC is!?
>Bitte... >http://openbook.galileocomputing.de/c_von_a_bis_z/ das scheint mir schon sehr umfangreich zu sein, aber es fällt kein wort über mikrocontroller!? darum geh ich davon aus, dass es weder n buch für programmer für n PC is!? @Chris das hab ich auch schon gelesen, dass viele libs gebraucht werden. aber ich hab schon ne librariesammlung runtergeladen. war alles bei dem buch dabei. bzw unter den links die im buch stehn. ich glaub das buch ist schon sehr lehrreich, von dem her versuch ich mich damit mal zu befassen. weil ne menge geld gekostet hat s ja und dass will ich nicht unversucht zum fenster raus geschmissen haben. und wenn es ganz in die hose geht, dann werd ich wohl umsteigen und mir auch noch das andere von euch genannte buch kaufen. und solche testboards hab ich schon. sogar mit LCD display, wobei ich das noch ganz hinten vergraben hab^^ also ich danke euch für die schnellen antworten. ich kauf mir dann zum anfang den PICkit2, da ja viele der von euch vorgeschlagenen brenner nen brenner brauchen um programmiert zu werden und ich möglichst schnell damit anfangen will. ich werde euch natürlich über meinen erfolg/scheitern informieren und dann dürft ihr sagen gut gemacht/wir habens dir ja gesagt! ;) viele grüße rappl
Zu PicKit2, würde dir eher zu einem usb-rs232 konverter raten, ev nur ttl (alte Händykabel) oder sonst bei pollin, 5 oder 6 euro, und mach dir den ICD2 von lothar stolz oder konsorten, ev. auch einen pickit2 Nachbau. Den USB Pic kannst du dir damit programmieren, http://home.vrweb.de/~lotharstolz/stolz.de.be/lvpc/index.html, funktioniert problemlos. Dann rate ich dir noch, einen Pegelkonverter mit z.B. max3227ecd oder mit Transistoren zu machen, um dann von deinen Schaltungen mit dem PC kommunizieren zu können. Der Max3227 oder die Transistorenlösung hat den Vorteil, daß du auch mit 3.3V arbeiten kannst. Wenn du z.B. Speicherkarten (SD) oder andere Sachen später machst, dann musst du warscheinlich auf 3.3V arbeiten, und dann ist es blöd, wenn der Pegelwandler nicht mehr arbeitet. Auch kannst du jeden beliebigen anderen progger machen, und nur den PIC mit den oben erwähnten progger programmieren.
Ich habe noch ein Buchvorschlag für das Programmieren von PIC's in Assembler: Mikrocontroller für Einsteiger von Michael Hofmann (Franzis-Verlag). Meiner Meinung nach wird von Anfang an sehr gut erklärt, wie man Mikrocontoller programmieren kann. Gut finde ich auch, dass in dem Buch die Hardware beschrieben wird und nicht nur die Software. Für Einsteiger eine gute Starthilfe. Grüße Peter.
e-Lektor kennste!? die haben anfang Sommer ein Buch rausgebracht das den Tietel: "PIC-Mikrokontroller 50 Projekte für Anfänger und Fortgeschrittene" trägt! Das habe ich mir gekauft und kann es ohne Gewissensbisse wärmstens empfehlen! Du hast dir dch ein Buch gekauft, war es vielleicht das? hier noch den link: http://www.elektor.de/products/books/microcontrollers/pic-mikrocontroller.930548.lynkx da geht es mit JAL zur Sache! sämtliches zubehör u.s.w. sind z.B auf der VOTI-Seite. ist alles auf der e-lektor Seite verlinkt! falls dir all diese Infos schon von anderen angepriesen wurden, sorry! Aber ich konnte mir nicht all das Geheule und die Werweißungen in ruhe durchlesen! e-Lektor ist auf jeden Fall eine seriöse Adresse da bekommst du seltenst was veraltetes oder falsches als top-news angepriesen! Beste Grüße aus Kassel dä Moler
wnjghm ja gut dann halt Elektor ich mach auch sonst noch ein Haufen Rechtschreibfehler entschuldigt die bitte, pauschal, auch gleich mal!
ja genau dieses buch hab ich! ich komm auch momentan wirklich gut damit zu recht! hab mich bis jetz immer so durchgewurschtelt! auch schon n eigenes kleines projekt gemacht dass nicht im buch stand, und es hat funktioniert! die jal sprache is zwar wohl nich so sehr verbreitet, aber ich hab mir vieles so selbst zusammenreimen können, da die dazugehörenden bibliotheken sehr gut mit kommentaren udn erklärungen bestückt sind!
Hatte mal ein gutes PIC Buch für Assembler und C (natürlich nur Grundlagen), war glaub ich das: http://www.oldenbourg-wissenschaftsverlag.de/olb/de/1.c.1324449.de
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.