PIC10F202/etc: Programmierung unter Linux(Ubuntu)

Gast #7324779
Lesenswert?

Harry R. schrieb:

bin gerade beim Download.

Ich weiss ja nicht was du vorhast.Wenn du generell mit PIC arbeiten willst benoetigst du auch einen Programmer wie z.B. diesen chinesischen Clone

https://www.ebay.de/itm/233195785273?hash=item364b8d4c39:g:wZkAAOSwy8JcsDON

Dieser Clone funktioniert hier bei mir.Da die Chinesen eifrig kopiert haben,haben sie allerdings auch einen kleinen "Bug" von Microchip mitkopiert.Dies ist aber kein grosses Problem - man muss lediglich bei einem eventuellen Nichterkennen eines PICs die Betriebsspannung softwaremaessig abaendern- statt 5V z.B. 4.75V unter einem Menuepunkt.Darauf gehe ich jetzt aber nicht ein weil ich nicht weiss ob du schoen einen Programmer hast.Ausserdem kann man sich das "Problem" auch ergoogeln... Ich habe meinen PICkit3 noch fuer ca. 12€ bekommen - jetzt zahlst du das 3-fache....vielleicht mal nachsehen was die Originalware kostet.Standard ist momentan PicKit4 Solltest du bestellen,dann waehle die Option mit Adapter.

OP #7324815
Lesenswert?

Toxic schrieb:

Harry R. schrieb:

bin gerade beim Download.

Ich weiss ja nicht was du vorhast.Wenn du generell mit PIC arbeiten willst benoetigst du auch einen Programmer wie z.B. diesen chinesischen Clone

https://www.ebay.de/itm/233195785273?hash=item364b8d4c39:g:wZkAAOSwy8JcsDON

Dieser Clone funktioniert hier bei mir.Da die Chinesen eifrig kopiert haben,haben sie allerdings auch einen kleinen "Bug" von Microchip mitkopiert.Dies ist aber kein grosses Problem - man muss lediglich bei einem eventuellen Nichterkennen eines PICs die Betriebsspannung softwaremaessig abaendern- statt 5V z.B. 4.75V unter einem Menuepunkt.Darauf gehe ich jetzt aber nicht ein weil ich nicht weiss ob du schoen einen Programmer hast.Ausserdem kann man sich das "Problem" auch ergoogeln... Ich habe meinen PICkit3 noch fuer ca. 12€ bekommen - jetzt zahlst du das 3-fache....vielleicht mal nachsehen was die Originalware kostet.Standard ist momentan PicKit4 Solltest du bestellen,dann waehle die Option mit Adapter.

Witzig :-) Installiert habe ich das ganze jetzt, sieht unter Linux/Ubuntu ähnlich aus wie bei dir ... und jetzt wäre die Frage nach dem Programmer gekommen .. ist also schon beantwortet. Gibt es in MPLABX so etwas wie HelloWorld-Beispiele um den Einstieg anhand von simplen Testprogrammen schneller zu schaffen ?

So, jetzt habe ich mir den von dir vorgeschlagenen Link mal zu Gemüte geführt. Teuer, aber wahrscheinlich ist Putin und/oder Corona daran auch mal wieder schuld. Leider gibt der Gebrauchtmark wenig her. In der Beschreibung steht (betreffend 10FXX):

"The seat supports the following programming microcontroller: PIC16/18XX 40PIN Series devices (except 16F59) PIC16/18XX 28PIN Series devices (except 16F57) PIC16/18XX 18PIN Series devices The PIC 8PIN/14PIN/20PIN family of devices (except 10FXX)" <-----

Weiter unten aber :

" ..... Supported Devices

Refer to MPLAB IDE v8.76, the following devices are supported:

PIC10F PIC10F200, PIC10F202, PIC10F204, PIC10F206, PIC10F220, PIC10F222

PIC12F PIC12F508, PIC12F509, PIC12F510, PIC12F519, PIC12F609, PIC12HV609, PIC12F615, PIC12FHV615PIC12F629, PIC12F635, PIC12F675, PIC12F683 ...."

Geht der PIC10F202 jetzt oder nicht ?

Grüßle Harry

Gast #7324836
Lesenswert?

Ich habe diesen China-PicKit3, läuft bei mir auch mit 10F... und 10LF... und dazu ein Breakout mit 40pol Textool-Sockel.

Ich programmiere allerdings noch auf einem alten Win7 in einer VM, MPLAB X war mir zu gross. Das Photo zeigt einen PICF10F322 als Watchdog, ein 100nF ist noch auf der Unterseite direkt zwischen Pin 2 und 5 und ein paar Kupferlackdrähte.

Angehängte Dateien:
#7324840
Lesenswert?

Harry R. schrieb:

Geht der PIC10F202 jetzt oder nicht ?

Beziehen sich die Angaben nicht auf den Programmiersockel?

Ganz schön teuer geworden die PICkit3 Clones. Da würde ich darüber nachdenken ein original SNAP anzuschaffen. https://de.farnell.com/microchip/pg164100/in-circuit-debugger-einrast-mcu/dp/2915518?st=maplab+snap

Ist mehr oder weniger ein PICkit4, aber ohne Gehäuse und ohne die Möglichkeit Power für das Zielsystem bereit zu stellen. https://microchipdeveloper.com/hwtools:compare Dafür kann man damit wesentlich mehr Controllertypen programmieren und debuggen.

OP #7324862
Lesenswert?

Volker S. schrieb:

Harry R. schrieb:

Geht der PIC10F202 jetzt oder nicht ?

Beziehen sich die Angaben nicht auf den Programmiersockel?

Ganz schön teuer geworden die PICkit3 Clones. Da würde ich darüber nachdenken ein original SNAP anzuschaffen. https://de.farnell.com/microchip/pg164100/in-circuit-debugger-einrast-mcu/dp/2915518?st=maplab+snap

Ist mehr oder weniger ein PICkit4, aber ohne Gehäuse und ohne die Möglichkeit Power für das Zielsystem bereit zu stellen. https://microchipdeveloper.com/hwtools:compare Dafür kann man damit wesentlich mehr Controllertypen programmieren und debuggen.

Ja, günstig ist das alles nicht, bei Farnell sind wir am Ende mit Versand bei 50€, da muss ich mal drüber nachdenken, ob ich wirklich die Luxus-Version brauche. Danke erst mal für eure Unterstützung !!

Grüßle

OP #7324868
Lesenswert?

vboxuser schrieb:

Ich habe diesen China-PicKit3, läuft bei mir auch mit 10F... und 10LF... und dazu ein Breakout mit 40pol Textool-Sockel.

Ich programmiere allerdings noch auf einem alten Win7 in einer VM, MPLAB X war mir zu gross. Das Photo zeigt einen PICF10F322 als Watchdog, ein 100nF ist noch auf der Unterseite direkt zwischen Pin 2 und 5 und ein paar Kupferlackdrähte.

Sieht ja schon etwas wackelig aus :-) Im Laufe der Jahre bin ich zur Auffassung gekommen, dass manches günstiger selbst zu machen ist, aber die Zeit, die man dafür benötigt auch betrachtet werden muss. Das Breakout wäre günstiger, aber der Zeitfaktor (für mich) zu hoch.

Grüßle

PS.: Probiere doch mal LINUX, WIN7 ist auch nicht mehr unbedingt das Gelbe vom Ei.

Gast #7324896
Lesenswert?

Harry R. schrieb:

Leider gibt der Gebrauchtmark wenig her. In der Beschreibung steht

Gilt fuer den Adapter - hat nichts mit dem PicKit zu tun

Harry R. schrieb:

Geht der PIC10F202 jetzt oder nicht ?

Der Anhang in meinem frueheren Posting zeigt ja,dass der PIC10F202 von MPLABX unterstuetzt wird

Harry R. schrieb:

PIC10F

Statt PIC10F haetten sie schreiben sollen PIC10Fxxxx

Ich hatte mir fuer den Adapter eine pdf erstellt um schnell erkennen zu koennen wie ich einen PIC einzusetzen habe und wie die Jumper zu setzen sind. Falls du die pdf verwenden willst - siehe Anhang Ich habe bisher nur eine begrenzte Anzahl von PICs verwendet.Der PIC10F war nicht mit dabei.... Beachte auch:Die meisten Formuser hier sind Atmel-Freaks.Da gibt es fuer dich nur wenig Unterstuetzung.PICs sind fuer die ein rotes Tuch weil die ja zwar in Massen produziert und verwendet werden und deswegen auch so unheimlich schlecht sind ;-)

Harry R. schrieb:

Gibt es in MPLABX so etwas wie HelloWorld-Beispiele

Nein, aber dafuer gibt es Microchip Videos auf YouTube...

Schau dir die Links weiter unten auf dieser Webseite an https://www.microchip.com/forums/m456291.aspx

Angehängte Dateien:
OP #7324922
Lesenswert?

Volker S. schrieb:

Harry R. schrieb:

Ja, günstig ist das alles nicht, bei Farnell sind wir am Ende mit Versand bei > 50€

Ja leider. In der Vergleichstabelle stehen noch 15$ von früher. Es gab die sogar bei Farnell bei einer Promo-Aktion für unter 10€ pro Stück. Damals hatte ich gleich so viele gekauft, dass auch noch der Versand kostenlos war.

Dann hast du doch sicher einen übrig, oder ? :-))))

#7324928
Lesenswert?

Toxic schrieb:

Schau dir die Links weiter unten auf dieser Webseite an https://www.microchip.com/forums/m456291.aspx

Das erinnert mich an die Gooligum Tutorials. Fand ich damals wirklich gut, scheint aber nicht mehr aktiv zu sein ;-)

Das alte Material liegt noch auf Github. Wird nicht mehr ganz so aktuell sein, aber in den Baseline Lessons wurde auch ein 10F2.. benutzt. https://github.com/gooligumelec/PIC-tutorials/blob/main/Baseline_C.zip

OP #7324934
Lesenswert?

Toxic schrieb:

Harry R. schrieb:

Leider gibt der Gebrauchtmark wenig her. In der Beschreibung steht

Gilt fuer den Adapter - hat nichts mit dem PicKit zu tun

Okay .. wird also funzen.

Harry R. schrieb:

Geht der PIC10F202 jetzt oder nicht ?

Der Anhang in meinem frueheren Posting zeigt ja,dass der PIC10F202 von MPLABX unterstuetzt wird

Harry R. schrieb:

PIC10F

Statt PIC10F haetten sie schreiben sollen PIC10Fxxxx

Ich hatte mir fuer den Adapter eine pdf erstellt um schnell erkennen zu koennen wie ich einen PIC einzusetzen habe und wie die Jumper zu setzen sind. Falls du die pdf verwenden willst - siehe Anhang

Wird gleich herunter geladen.

Ich habe bisher nur eine begrenzte Anzahl von PICs verwendet.Der PIC10F war nicht mit dabei.... Beachte auch:Die meisten Formuser hier sind Atmel-Freaks.Da gibt es fuer dich nur wenig Unterstuetzung.PICs sind fuer die ein rotes Tuch weil die ja zwar in Massen produziert und verwendet werden und deswegen auch so unheimlich schlecht sind ;-)

Mir ist das egal, Hauptsache ich bekomme das hin, was ich plane, da bin ich sehr pragmatisch :-)

Harry R. schrieb:

Gibt es in MPLABX so etwas wie HelloWorld-Beispiele

Nein, aber dafuer gibt es Microchip Videos auf YouTube...

Ich mag Tutorials auf Youtube, in diesem Fall fände ich Code als Textdatei (wie beim Arduino) besser.

Schau dir die Links weiter unten auf dieser Webseite an https://www.microchip.com/forums/m456291.aspx

Mach' ich, jetzt ist aber erst mal Schluss für heute.

So long

OP #7324950
Lesenswert?

Volker S. schrieb:

Toxic schrieb:

Schau dir die Links weiter unten auf dieser Webseite an https://www.microchip.com/forums/m456291.aspx

Das erinnert mich an die Gooligum Tutorials. Fand ich damals wirklich gut, scheint aber nicht mehr aktiv zu sein ;-)

Das alte Material liegt noch auf Github. Wird nicht mehr ganz so aktuell sein, aber in den Baseline Lessons wurde auch ein 10F2.. benutzt. https://github.com/gooligumelec/PIC-tutorials/blob/main/Baseline_C.zip

Lang lebe gooligumelec, was auch immer das bedeutet ;-) Sehr guter Link !

Grüßle und Ciao

Gast #7325069
Lesenswert?

Volker S. schrieb:

Das erinnert mich an die Gooligum Tutorials.

Kenn ich noch.Damals konnte man die Tutorials noch frei downloaden.Irgendwann war es kostenpflichtig. Hab noch ein komplette Sammlung der damaligen pdfs - alles zusammengefasst als einzelne pdf-datei: 15MByte..... Wenn der TO Interesse hat ,kann ich es hier hochladen

Aber ehrlich gesagt:das Internet ist voll mit Tutorials.

Hier ist ein nettes Video von Microchip fuer Beginner(war frueher auf YouTube jetzt aber auf Microchip intern verlagert - weiss nicht warum...)

https://www.microchip.com/webinars.microchip.com/WebinarDetails.aspx?dDocName=en556253

beim obigen Link auf "View" (weiter unten)klicken um das Video zu sehen

Die Stimme ist sympathisch und der Inhalt gut auf Anfaenger abgestimmt.Wie schon gesagt:es gibt genuegend Microchip "Webinar"-Videos und Microchip Minutes-Episodes.Alle kommen auf den Punkt und laufen nicht wie die Katze um den heissen Brei herum.Zudem sind sie kurz gehalten was auch Atmeluser davon abhalten sollte einzuschlafen....Ja! auch Atmeluser koennen sich sowas ansehen-man muss sich nur spezifische PIC-Details wegdenken.Ich lese auch gerne Infos in Atmel-Datenblaettern und uebernehme zuweilen Code den ich halt auf Pic umstricken muss.PIC-Atmel-Debatten sind mir zuwider....

Angehängte Dateien:
OP #7325320
Lesenswert?

Toxic schrieb:

Volker S. schrieb:

Das erinnert mich an die Gooligum Tutorials.

Kenn ich noch.Damals konnte man die Tutorials noch frei downloaden.Irgendwann war es kostenpflichtig. Hab noch ein komplette Sammlung der damaligen pdfs - alles zusammengefasst als einzelne pdf-datei: 15MByte..... Wenn der TO Interesse hat ,kann ich es hier hochladen

Ich melde hiermit Interesse an :-)

Aber ehrlich gesagt:das Internet ist voll mit Tutorials.

Hier ist ein nettes Video von Microchip fuer Beginner(war frueher auf YouTube jetzt aber auf Microchip intern verlagert - weiss nicht warum...)

https://www.microchip.com/webinars.microchip.com/WebinarDetails.aspx?dDocName=en556253

beim obigen Link auf "View" (weiter unten)klicken um das Video zu sehen

Die Stimme ist sympathisch und der Inhalt gut auf Anfaenger ...

Ich finde die meisten Tutorials etwas langatmig, aber mal reinschauen um mir das Gegenteil beweisen zu lassen werde ich natürlich.

Grüßle

#7325543
Lesenswert?

Harry R. schrieb:

für PIC10XYZ ?

Falls wirklich so kleine PICs verwendet werden sollen, würde ich einen 10F3xx empfehlen. Heißt zwar auch PIC10, ist aber eigentlich eine Klasse höher als die 200er. (Midrange vs. Baseleine)

Fast gleicher Preis, scheller, mehr RAM, mehr Timer, ADC, mehr Peripherie...

Ein Demoboard incl. Sourcecode gäbe es auch. https://www.microchip.com/en-us/development-tool/AC103011

Der "Userguide" ist allerdings ein Witz. Kannst ja mal rein schauen. Vllt. nichts für absolute Anfänger ;-) Das Demoprogramm lässt sich aber auf jeden Fall noch mit aktuellem MPLABX und XC8 problemlos erstellen.

OP #7325592
Lesenswert?

Volker S. schrieb:

Harry R. schrieb:

für PIC10XYZ ?

Falls wirklich so kleine PICs verwendet werden sollen, würde ich einen 10F3xx empfehlen. Heißt zwar auch PIC10, ist aber eigentlich eine Klasse höher als die 200er. (Midrange vs. Baseleine)

Du musst mich als Anfänger sehen, der im Moment genau eine Anwendungsmöglichkeit für einen PIC10XYZ sieht und dafür ist er (wahrscheinlich) optimal geeignet. Ob ich danach weiterer Projekte finde .. wer weiß, wenn ich dann angefixt bin ... Grüßle Harry

Gast #7325661
Lesenswert?

Harry R. schrieb:

PIC10XYZ sieht und dafür ist er (wahrscheinlich) optimal geeignet.

Ich muss "vloki" recht geben.Diese Mini-ucs wuerde ich mir selbst nicht antun wollen -ausser es handelt sich um ein Projekt wo man einen kleinen uc im 6 pin-SOT23-Gehaeuse moechte.Ich halte ihn fuer einen Anfaenger nicht geeignet,da man schnell an Grenzen stoesst wie z.B. zu wenig Datenspeicher,kaum Stack und keine zusaetzliche Peripherie wie A/D-Wandler.Diese uCs haben ihre Berechtigung - besser als jeder Timer555 etc aber nicht geignet fuer Spielereien. Ich wurde eher einen PIC12F1840 oder neueren Typ verwenden.Ich mache hardwaremaessig nur kleine Projekte die man schnell auf Lochrasterplatinen aufbauen kann - Hauptaugenmerk liegt dabei auf der Software...

Es ist ein Fehler zu denken,dass "groessere" uCs schwieriger zu handhaben sind.Die Groesseren haben einfach mehr interne Peripherie und man muss - wie bei allen uCs gleich in der Initialisierung darauf achten,dass das Modul mit dem arbeiten moechte auch aktiviert ist. Diese Initialisierung ist teilweise etwas zeitraubend,weil man nicht umhin kommt das Datenblatt durchzugehen.Ein mini-uC ohne Peripherie - naja:da braucht man gar nix zu tun. Ich selbst mache alles manuell aber es gibt von Microchip ein Add-On welches man innerhalb der IDE MPLABX downloaden kann.Dieses Add-/on gibt dir grafisch die Moeglichkeit Pin-Zuweisungen zu machen ode bestimmte Peripherie zu aktivieren oder deaktivieren ohne auf das Datenblatt zurueckgreifen zu muessen.

Das Add-ON heisst MCC - Microchip Code Configurator Geh auf Tools/PlugIns download. Beachte aber: die PIC12F2xx sind aeltere uCs die noch nicht von MCC unterstuetzt werden! Ist aber auch nicht notwendig bei Null Peripherie ;-)

Es gibt da uebrigens auch ein Arduino Plugin - sehe ich gerade.....

Angehängte Dateien:
OP #7325688
Lesenswert?

Toxic schrieb:

Harry R. schrieb:

PIC10XYZ sieht und dafür ist er (wahrscheinlich) optimal geeignet.

Ich muss "vloki" recht geben.Diese Mini-ucs wuerde ich mir selbst nicht antun wollen -ausser es handelt sich um ein Projekt wo man einen kleinen uc im 6 pin-SOT23-Gehaeuse moechte.Ich halte ihn fuer einen Anfaenger nicht geeignet,da man schnell an Grenzen stoesst wie z.B. zu wenig Datenspeicher,kaum Stack und keine zusaetzliche Peripherie wie A/D-Wandler.Diese uCs haben ihre Berechtigung - besser als jeder Timer555 etc aber nicht geignet fuer Spielereien. Ich wurde eher einen PIC12F1840 oder neueren Typ verwenden.Ich mache hardwaremaessig nur kleine Projekte die man schnell auf Lochrasterplatinen aufbauen kann - Hauptaugenmerk liegt dabei auf der Software...

Ja, du magst recht haben, ich weiß aber ziemlich genau, dass mein Mini-Projekt auf einem PIC10F220 laufen wird, denn mein "Vorbild/Denkanstoß" läuft eben auf diesem PIC. Die "Änderung/Verbesserung", die ich implementieren will, ist minimal, aber für mich entscheidend. Und sie wird im C-Code vielleicht 5 Zeilen mehr benötigen. BTW, kann man sich HexCode eines PIC in die Entwicklungsumgebung transferieren ? Sagen wir mal zum ReverseEnginering.

Es ist ein Fehler zu denken,dass "groessere" uCs schwieriger zu handhaben sind.Die Groesseren haben einfach mehr interne Peripherie und man muss - wie bei allen uCs gleich in der Initialisierung darauf achten,dass das Modul mit dem arbeiten moechte auch aktiviert ist. Diese Initialisierung ist teilweise etwas zeitraubend,weil man nicht umhin kommt das Datenblatt durchzugehen.Ein mini-uC ohne Peripherie - naja:da braucht man gar nix zu tun. Ich selbst mache alles manuell aber es gibt von Microchip ein Add-On welches man innerhalb der IDE MPLABX downloaden kann.Dieses Add-/on gibt dir grafisch die Moeglichkeit Pin-Zuweisungen zu machen ode bestimmte Peripherie zu aktivieren oder deaktivieren ohne auf das Datenblatt zurueckgreifen zu muessen.

Das Add-ON heisst MCC - Microchip Code Configurator Geh auf Tools/PlugIns download.

Das war/ist bereits (per default?) installiert :-)

Beachte aber: die PIC12F2xx sind aeltere uCs die noch nicht von MCC unterstuetzt werden! Ist aber auch nicht notwendig bei Null Peripherie ;-)

Es gibt da uebrigens auch ein Arduino Plugin - sehe ich gerade.....

Was genau macht dieses PPlugin ?

Danke und Grüße Harry

Gast #7325726
Lesenswert?

Harry R. schrieb:

BTW, kann man sich HexCode eines PIC in die Entwicklungsumgebung transferieren? Sagen wir mal zum Reverse Enginering.

An den Quelltext kommst du so nicht ran! Aber das Ding hat nur 384 Bytes Programmspeicher, das sind nur max. 256 Instruktionen, die überhaupt in den Flash passen (12-Bit Instruktionen). Mit einem Disassembler + etwas Ahnung vom PIC10F Assembler Code + Architektur sollte man das hinbekommen.

Das Datenblatt ist hier: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/40001270F.pdf Hat nur 88 Seiten, dabei ist der Befehlssatz mit dabei. Sind nur 33 mögliche Instruktionen. Ist doch auch mal nett, wenn ein µC in weniger als 100 Seiten komplett erklärt wird.

Ach ja: Da der 10F220 ja nur für 256 Instruktionen Platz hat, kann es sein, dass a) der ursprünglich sogar in Assembler programmiert wurde und es aber b) keinen Platz für deine zusätzlichen 5 Instruktionen gibt. Dann schau dir mal den 10F222 an.

OP #7325737
Lesenswert?

2⁵ schrieb:

Harry R. schrieb:

BTW, kann man sich HexCode eines PIC in die Entwicklungsumgebung transferieren? Sagen wir mal zum Reverse Enginering.

An den Quelltext kommst du so nicht ran! Aber das Ding hat nur 384 Bytes Programmspeicher, das sind nur max. 256 Instruktionen, die überhaupt in den Flash passen (12-Bit Instruktionen). Mit einem Disassembler + etwas Ahnung vom PIC10F Assembler Code + Architektur sollte man das hinbekommen.

War nur ein Versuch :-) Manchmal gibt es ja doch mehr als man vorher vermutet hat. Dissassemblieren werde ich nicht.

Das Datenblatt ist hier: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/40001270F.pdf Hat nur 88 Seiten, dabei ist der Befehlssatz mit dabei. Sind nur 33 mögliche Instruktionen. Ist doch auch mal nett, wenn ein µC in weniger als 100 Seiten komplett erklärt wird.

Ach ja: Da der 10F220 ja nur für 256 Instruktionen Platz hat, kann es sein, dass a) der ursprünglich sogar in Assembler programmiert wurde und es aber b) keinen Platz für deine zusätzlichen 5 Instruktionen gibt. Dann schau dir mal den 10F222 an.

Sorry, ich meinte den 10F202 :-|

Also,hüstel, Assembler ist nicht so meine "Lieblingssprache", "C" ist meine bevorzugte Wahl ...

Grüßle

Gast #7325743
Lesenswert?

Harry R. schrieb:

Also,hüstel, Assembler ist nicht so meine "Lieblingssprache", "C" ist meine bevorzugte Wahl...

Der 12F202 Flash hat halt max für 512 Instruktionen Platz. Das Datenblatt ist hier: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/40001239F.pdf

Wenn du den original Quellcode nicht hast muss du entweder Disassemblieren oder halt ohne Quelltext "einfach" :-) die Funktion des µC nachprogrammieren. Was willst du denn machen?

OP #7325767
Lesenswert?

2⁵ schrieb:

Harry R. schrieb:

Also,hüstel, Assembler ist nicht so meine "Lieblingssprache", "C" ist meine bevorzugte Wahl...

Der 12F202 Flash hat halt max für 512 Instruktionen Platz. Das Datenblatt ist hier: https://ww1.microchip.com/downloads/aemDocuments/documents/OTH/ProductDocuments/DataSheets/40001239F.pdf

Wenn du den original Quellcode nicht hast muss du entweder Disassemblieren oder halt ohne Quelltext "einfach" :-) die Funktion des µC nachprogrammieren. Was willst du denn machen?

Primitiver PseudoCode:

Init

Start:

Schalter gedrückt (incl. Entprellroutine)?

JA:

interner Status wird gesetzt.

Abhängig vom Status wird in 2 von 3 GPIO eine 1 geschrieben.

Es wird ein wenig gewartet.

In 2 von 3 GPIO eine 0 geschrieben

NEIN:

Gehe zu Start

Eigentlich fast nicht erwähnenswert :-)

Grüßle

Gast #7325777
Lesenswert?

Toxic schrieb:

wuerde ich mir selbst nicht antun

Die PIC10 haben Begrenzungen. Ein STM32F4 hat auch Begrenzungen. Brauche ich viele IOs, Speicher etc. pp. nehme ich keinen PIC10. Brauche ich ein wenig glue Logic ist der PIC10 super. Ich habe die schon als NE555 eingesetzt, PWM Timer mit Up / Down Tasten + Entprellung und allerhand schnickschnack. Die können irre viel für die Größe.

Gast #7325791
Lesenswert?

Max M. schrieb:

Ich habe die schon als NE555 eingesetzt, PWM Timer mit Up / Down Tasten

  • Entprellung und allerhand schnickschnack.

Hab ja nichts gegen diese Dinger.Sind auf ihre Art und Weise schon genial.Aber ich komme meist ohne A/D-wandler und Encoder nicht aus... Mit 8 Pins (2 davon +/-) kann man schon einiges anfangen.

Gast #7325815
Lesenswert?

Harry R. schrieb:

Init Start: Schalter gedrückt (incl. Entprellroutine)? JA: interner Status wird gesetzt. Abhängig vom Status wird in 2 von 3 GPIO eine 1 geschrieben. Es wird ein wenig gewartet. In 2 von 3 GPIO eine 0 geschrieben NEIN: Gehe zu Start

Hm... wird der Status auch mal gelöscht? Läuft hier eine Endlosschleife? Man kann auch den µC schlafen legen und bei einem GPIO Change (Datenblatt 5.1) ihn wieder aufwachen lassen. Ist das ganze Batterie betrieben?

OP #7325950
Lesenswert?

2⁵ schrieb:

Harry R. schrieb:

Init Start: Schalter gedrückt (incl. Entprellroutine)? JA: interner Status wird gesetzt. Abhängig vom Status wird in 2 von 3 GPIO eine 1 geschrieben. Es wird ein wenig gewartet. In 2 von 3 GPIO eine 0 geschrieben NEIN: Gehe zu Start

Hm... wird der Status auch mal gelöscht? Läuft hier eine Endlosschleife? Man kann auch den µC schlafen legen und bei einem GPIO Change (Datenblatt 5.1) ihn wieder aufwachen lassen. Ist das ganze Batterie betrieben?

Das Ganze läuft in einer Endlosschleife. Schlafen legen wäre eine Option, aber da mit Netzteil betrieben gibt es quasi keine Notwendigkeit zu sparen, das wäre dann eher ein Goodie on top. Der Status ist AN oder AUS und der wird bei jedes Mal in "JA:" neu gesetzt (Toggle). Apropos, so viel verrate ich noch, ich steuere ein bistabiles Relais an, da spare ich dann gegenüber einem "normalen" (monostabil ?) Relais im Laufe der Zeit eine Menge Halte-Strom.

Grüßle Harry

PS.: Unter Umständen/wahrscheinlich ist sogar die Entprellroutine obsolet (wg. NE555, der einen Schwellwert-Schalter vor dem In-GPIO implementieren wird)

OP #7326862
Lesenswert?

So, ich habe mich jetzt eingelesen, Tutorials angeschaut, alles installiert, was zu einer guten Entwicklungsumgebung gehört. Die erste Enttäuschung ist, dass der MCC den PIC10F202 nicht (mehr) unterstützt. Das zweite - größerer - Problem ist, dass alle Tutorials die ich bisher gefunden habe ziemlich alt, wenn nicht sogar outDatet sind.

Code-Schnipsel sind nicht compilierbar, Erklärungen zum MPLAB greifen nicht, da sehr alte Versionen im Spiel sind. Ich habe natürlich die aktuelle v6.05.

Was ich bisher nicht gefunden habe, ist eine kurze und knackige Referenz für den XC8-Compiler (Vorbild ist dafür immer die JAVA-Referenz von Oracle, das hat Substanz und bringt weiter !). Vielleicht ist hier jemand, der Erbarmen mit mir und meiner flachen Lernkurve hat und mir mit ein paar Zeilen Code etwas Anschubhilfe leistet !? Ich habe ein neues Projekt in MPLAB erstellt. Dafür habe ich das Template "PIC 10 C Template" verwendet. Ich dachte eigentlich, dass dann auch die Header-Dateien gleich mitkonfiguriert sind.

Sind sie aber nicht (leider). Also habe ich xc.h durch Konfiguration des Pfades (hier: /share/microchip/xc8/v2.40/pic/include) "sichtbar" gemacht, aber :

Warnung : unresolved includes inside <xc.h> #include <xc.h>

Übersetzen lässt es sich dennoch, kein Wunder, das Template ist natürlich nahezu Code-frei :-)

Folgende Dinge sind noch ungeklärt.

Die drei GPIO sind unterteilt in 3x Schreiben, einmal lesen. So würde ich es auch lassen. Also gibt es da nichts zu implementieren, oder ?

Ich möchte erst mal ohne sleep-Modus auskommen.

_sleep(100) ist ein unresolved identifier, was muss ich includieren ?

Ich möchte aus einem GPIO lesen (in eine Variable) und die anderern drei beschreiben.

Kann mir bitte jemand die Funktionsaufrufe dafür zeigen ?

Danke und Grüße Harry

Gast #7326934
Lesenswert?

Harry R. schrieb:

_sleep(100) ist ein unresolved identifier, was muss ich includieren ?

sleep() ist ein Macro der den uC in den Schlafmodus versetzt. Das Macro uebernimmt keine Parameter.Was willst du mit dem Parameter "100" bezwecken?

MPLAB XC8 C Compiler User's Guide for PIC:

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjiqp_GyOD8AhXUHcAKHU7jAlgQFnoECAsQAQ&url=https%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F50002737C%2520XC8%2520C%2520Compiler%2520UG%2520for%2520PIC.pdf&usg=AOvVaw1Sg-JKnZl7f1AOvRaaTywt

Synopsis #include <xc.h>

SLEEP(); Description This macro is used to put the device into a low-power standby mode. Example #include <xc.h> extern void init(void); void main (void) { init(); /* enable peripherals/interrupts */

1
while(1)
2
    SLEEP();  /* save power while nothing happening */

}

Harry R. schrieb:

Sind sie aber nicht (leider). Also habe ich xc.h durch Konfiguration des Pfades (hier: /share/microchip/xc8/v2.40/pic/include) "sichtbar" gemacht, aber :

Kann dem nicht ganz folgen: Hast du meienn geposteten Screenshot in einer meiner ersten Postings gesehen?Da hab ich mehr oder weniger fuer das Projekt "Harry" ein Template erstellt. Du siehst dort 3 pragma- und eine include(xc.h)-Zeile. Diese Zeilen habe nicht manuell eingetippt sonder mir von MPLABX automatisch erstellen lassen Rechts unten im Bild man noch markierten Code.Den habe ich einfach kpoiert und in eine neu erstellte "leere" xyz.c Datei eingefuegt und wie du siehst alles sichtbar....Bei einem groesseren Pic haettest du ein ganzen Rattenschwanz von pragma--Zeilen.In der Regel muss man dann nur die pragma-Zeilen aendern wo der Watchdogtimer,Oscillator und noch irgendsoein Osterhase sitzt den man konfigurieren muss.

Fuer die automatische Codegenerierung geht man auf "Produktion/Set Configurationbits.Danach heisst es nur noch kopieren und Einfuegen....

OP #7327006
Lesenswert?

Toxic schrieb:

Ich selbst mache alles manuell aber es gibt von Microchip ein Add-On welches man innerhalb der IDE MPLABX downloaden kann.Dieses Add-/on gibt dir grafisch die Moeglichkeit Pin-Zuweisungen zu machen ode bestimmte Peripherie zu aktivieren oder deaktivieren ohne auf das Datenblatt zurueckgreifen zu muessen.

Das Add-ON heisst MCC - Microchip Code Configurator Geh auf Tools/PlugIns download. Beachte aber: die PIC12F2xx sind aeltere uCs die noch nicht von MCC unterstuetzt werden! Ist aber auch nicht notwendig bei Null Peripherie ;-)

For the Record : PIC10F2XX wird auch nicht unterstützt :-)

OP #7327037
Lesenswert?

Toxic schrieb:

Harry R. schrieb:

SLEEP(); Description This macro is used to put the device into a low-power standby mode. Example #include <xc.h> extern void init(void); void main (void) { init(); /* enable peripherals/interrupts */

1
while(1)
2
    SLEEP();  /* save power while nothing happening */

}

Harry R. schrieb:

Sind sie aber nicht (leider). Also habe ich xc.h durch Konfiguration des Pfades (hier: /share/microchip/xc8/v2.40/pic/include) "sichtbar" gemacht, aber :

Kann dem nicht ganz folgen: Hast du meienn geposteten Screenshot in einer meiner ersten Postings gesehen?Da hab ich mehr oder weniger fuer das Projekt "Harry" ein Template erstellt. Du siehst dort 3 pragma- und eine include(xc.h)-Zeile. Diese Zeilen habe nicht manuell eingetippt sonder mir von MPLABX automatisch erstellen lassen Rechts unten im Bild man noch markierten Code.Den habe ich einfach kpoiert und in eine neu erstellte "leere" xyz.c Datei eingefuegt und wie du siehst alles sichtbar....Bei einem groesseren Pic haettest du ein ganzen Rattenschwanz von pragma--Zeilen.In der Regel muss man dann nur die pragma-Zeilen aendern wo der Watchdogtimer,Oscillator und noch irgendsoein Osterhase sitzt den man konfigurieren muss.

Fuer die automatische Codegenerierung geht man auf "Produktion/Set Configurationbits.Danach heisst es nur noch kopieren und Einfuegen....

So weit wie von dir beschrieben bin ich auch gekommen. Jetzt brauche ich nur die entsprechenden Lücken aufzufüllen: Wie lese ich aus einem GPIO ? Wie schreibe ich rein ? Ich habe mal einen Screenshot angehängt, da sieht man, wo es noch fehlt und ich Hilfe brauche.

Grüßle & Danke Harry

Angehängte Dateien:
#7327122
Lesenswert?

Max M. schrieb:

Was willst Du denn bei dem Zwerg automatisch an Code Konfigurieren lassen?

Oszillator, IO Pins, Timmer.... OK mehr hat das ja leider nicht. Aber wie so nicht.... Weil da keiner mit C drauf los geht?!* Wäre es wenigstens der 204/206er, die hätten noch Kommaoperatoren drin. So'n Ein 10F2xxer sieht doch lächerlich, neben so nen 555er aus. ;D

*) Ich :DDD

#7327168
Lesenswert?

Harry R. schrieb:

Ich möchte aus einem GPIO lesen (in eine Variable) und die anderern drei beschreiben.

Kann mir bitte jemand die Funktionsaufrufe dafür zeigen ?

Dafür braucht man doch keine Funktionen :D

Harry R. schrieb:

Ich habe mal einen Screenshot angehängt,

JA, sehr mühsam das jetzt abzutippen. Poste doch lieber den Code oder am besten das gezippte Projekt. In MPLABX gibt es da im Kontextmenü des Projektes ein "Package"

Angehängte Dateien:
Gast #7327506
Lesenswert?

Teo D. schrieb:

weil da keiner mit C drauf los geht?!*

Wie Du weist ist die Zeit lange vorbei als man so lütte Dinger nur in ASM vernünftig beackern konnte. C ist völlig okay. Funktionen einbinden von denen man nicht weiß wieviel Code die erzeugen, kann aber schnell zu Problemen führen bei 512B ROM und 24B SRAM. Und die paar Register sind doch schnell ohne MCC gesetzt und gelesen.

So'n Ein 10F2xxer sieht doch lächerlich, neben so nen 555er aus. ;D

Neben wäre auch am Ziel vorbei. Der PIC10 ersetzt ja den 555 + eine Handvoll Beschaltung und ist dabei multifunktional und ISP. Dagegen sieht der 555 wirklich lächerlich aus.

Der 555 hat den Vorteil das er nicht progarmmiert werden muss. Ich habe bestimmt 10K PIC10F eingesetzt. Fertig programmiert von MC auf Reel. Das war Gold wert als wir einen späten Änderungswunsch noch nachträglich beim Kunden über ISP nachrüsten konnten. Das währe bei vergossenem Gerät sonst ein Totalschaden gewesen.

OP #7327623
Lesenswert?

Teo D. schrieb:

Max M. schrieb:

Was willst Du denn bei dem Zwerg automatisch an Code Konfigurieren lassen?

Oszillator, IO Pins, Timmer.... OK mehr hat das ja leider nicht. Aber wie so nicht.... Weil da keiner mit C drauf los geht?!* Wäre es wenigstens der 204/206er, die hätten noch Kommaoperatoren drin. So'n Ein 10F2xxer sieht doch lächerlich, neben so nen 555er aus. ;D

*) Ich :DDD

Für mich reicht er vollkommen aus :-)

OP #7327633
Lesenswert?

Volker S. schrieb:

Harry R. schrieb:

Ich möchte aus einem GPIO lesen (in eine Variable) und die anderern drei beschreiben.

Kann mir bitte jemand die Funktionsaufrufe dafür zeigen ?

Dafür braucht man doch keine Funktionen :D

Wie auch immer es heißt, dann schreibe ich jetzt "Bezeichner" und bin auf der richtigen Seite :-)

Harry R. schrieb:

Ich habe mal einen Screenshot angehängt,

JA, sehr mühsam das jetzt abzutippen. Poste doch lieber den Code oder am besten das gezippte Projekt. In MPLABX gibt es da im Kontextmenü des Projektes ein "Package"

Ja, gerne, nächstes mal. Ich wollte halt auch zeigen, wie es in der Entwicklungsumgebung aussieht ...

Ich will hier auch keinen größeren Aufruhr verursachen.

Gast #7327761
Lesenswert?

Harry R. schrieb:

Das wird nicht opulent, eher karg :-)

Delay Funktionen zu nutzen ohne zu wissen welche Menge Code die generieren, bezeichne ich als opulente Spielerei.

Harry R. schrieb:

Was ist DB ?

Datenblatt. Deine Bibel wenn es um Fragen zum PIC geht.

Teo D. schrieb:

Grundsätzlich Problem mit dem Textverständnis? Oder haste nen heftigen Hangover?

Warum so unhöflich? Deswegen einen 555?

(wg. NE555, der einen Schwellwert-Schalter vor dem In-GPIO implementieren wird)

Der PIC10F204 hat einen Comparator bei dem beide Eingänge rausgeführt sind. Einfach die richtige MCU verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren