Forum: Mikrocontroller und Digitale Elektronik Wie einen PIC 10F202 programmieren ?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Evert D. (evertd)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo Leute,

ich kann noch immer kein 10F20x programmieren.
Mit Pickit 2 bekomme ich immer einen OSCAL Fehlermeldung,
und mit mit Pickit 3 wird kein 'Target' gefunden....

Digikey kann mir nicht helfen, und auch bei Microchip
haben die keine Ahnung von was die verkaufen, denn auch
die wissen nix.

Ist hier jemand der schonmal sowas programmiert hat,
und es mir sagen kann wie ?

Schonmal vielen Dank im voraus.

LG,

Evert

von homa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
http://sprut.de/electronic/pic/12bit.htm

USBurn von sprut scheint den zu unterstützen.

von Udo (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Werner H. (pic16)


Bewertung
1 lesenswert
nicht lesenswert
Evert D. schrieb:
> Microchip
> haben die keine Ahnung von was die verkaufen, denn auch
> die wissen nix.

Halte ich für ein Gerücht! Zuerst solltest du mal erklären was du auf 
den Chip schreiben mochtest und welches Programm du zum brennen 
verwendest. Da gibbet mehrere Progs wie zb. MPLAB, MPLABX oder die Stand 
allone zum PK1 o, 2.

von chris (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn oscal geloscht wurde, es gibt ein backup und noch ein backup des 
backups im reservierten flash bereich, 104h glaube ich.
Einfach auf 12f508 umschalten und die Adresse auslesen. Programming spec 
gibt bessere info.

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Die Originalsoftware von Microchip wurde benutzt.
Sowohl Pickit 2 als Pickt 3 mit MPLAB können die 10F20x
Serie nicht programmieren.
Wenn etwas falsches gelöscht wurde, liegt das an die
Programmiersoftware, ich habe sowas nicht gemacht.
Ich habe nur einen HEX-Datei in die Kontroller schreiben wollen.

Mit den 16F54 läuft alles normal.

Evert

PS: Die Antworten von Homa und Udo muß ich noch nachschauen.

von Toxic (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Evert D. schrieb:
> Ist hier jemand der schonmal sowas programmiert hat,
> und es mir sagen kann wie ?

Hab eben einen neuen, ungebrauchten aber angestaubten PIC10F200 
testweise mit XC8 getestet.Liess sich mit Spruts Brenner problemlos 
programmieren.Hab auch noch einen PIC10F206 zum testen,aber der wird 
genauso funktionieren wie die anderen 10F2xx Typen auch.....

von chris (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Nimm Version  2.61 von standalone pk2 SW,
Mplab hat diverse Probleme und bugs.
Achtung, vpp before vdd muss gesetzt sein und es funktioniert nur mit 
5V. ZB kann es sein dass es am PC funktioniert, am Laptop nicht.
Tools  Osccal Option  recreate automatical. Damit funkt es dann wenn 
die Programmierung abgeschmiert ist. Spannungseinbruch oder glitch nach 
bulk erase bevor es komplettiert bewirken so ein abschmieren. Ansonsten 
kann es zumindest die standalone SW problemlos.

von Toxic (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Toxic schrieb:
> Hab eben einen neuen, ungebrauchten aber angestaubten PIC10F200
> testweise mit XC8 getestet.Liess sich mit Spruts Brenner problemlos
> programmieren.Hab auch noch einen PIC10F206 zum testen,aber der wird
> genauso funktionieren wie die anderen 10F2xx Typen auch.....

Sorry & peinlich aber ich muss mich korrigieren !

Mir ist beim Test ein Fehler unterlaufen(naja ist Mitternacht...).Der 
PIC10F200 laesst sich mit Spruts Brenner mit meiner Konfiguration NICHT 
programmieren.Es ist das erste Mal,dass ich einen PIC nicht brennen 
kann.Ich habe diese 10Fxx Typen nie im Einsatz gehabt,weil sie schlicht 
und einfach fuer meine Beduerfnisse zu wenig zu bieten hatten.

Hmm - mal sehen ob ich die Dinger vielleicht doch noch zum Leben 
erwecken kann.

von Christian M. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich hatte keine Probleme die 10F20x mit dem Sprut-Brenner zu brennen. 
Konfiguration:

- Sprut-Brenner 8
- ICSP-Modus
- Anschluss am Desktop-Rechner 5V
- Programm erstellt mit Oshonsoft
- Habe in meinen Unterlagen folgende Notiz gefunden:

1
Achtung, im .ASM File die letzten Zeilen folgendermassen anpassen:
2
3
oscillator calibration value
4
  org 0x0ff
5
  movlw 0x0c
6
configuration Word settings
7
  org 0x1ff
8
  dw 0x0feb

Gruss Chregu

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

vielen Dank für die Teilname.
Entschuldige bitte, wenn ich manchmal nicht buchstäblich auf jedes
Detail eingehe, alles wird aber gelesen und beachtet.

Ich habe nochmal nachgeschaut, die SW vom PK 2 ist die Version 2.61.
Damit ist ein 10F20x nicht programmierbar.
Damit hat auch Digikey und Microchip nicht helfen können.
Angeblich zu alt.....
Mit PK 3 bekomme ich "Target not found" also wird das Teil gar nichtmal
erkannt !

Wofür ich die kleinen Dinger gern benutzen möchte ist hauptsächlich
als Timer in Akkuladegeräten.
Also sollte es schön klein sein.
Sonnst muß ich mal sehen welchem 14 Pin Kontroller sich programmieren
läßt.

ICSP Modus ?
Könnte da den Fehler liegen ?
Wenn ich doch den Programmer richtig mit dem Kontroller verbinde,
dann muß es doch funktionieren ?
Es funzt doch auch mit dem 16F54 ?


Achja nochwas: Die Software wird geschrieben in Great Cow Basic,
und dann außer als tekst, direkt als HEX gespeichert.
Dann mit PK 2 im Kontroller geschrieben.
Mit dem 16F54 ausnahmslos fehlerfrei.
(Ausser wenn ich irgendwo ein Tappfuhler oä eingebaut habe natürlich)

In GCB gibt es ausgezeichnete warteschleifen:

Wait xx us   (µsekunden)
Oder auch ms (millisekunden), s .... logisch, Sekunden
Aber auch m für Minuten und sogar h für Stunden.


Tja, probier mal eine Warteschleife von eine Stunde in Assembler
zu schreiben....
Sogar Sekunden ist dabei schon ein Problem....


Ich muß die Bilder von Toxic noch anschauen.
Jetzt

Tschüß ! Und nochmal vielen Dank für's mitdenken

Evert

von Udo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
So sollte das  Programm aussehen.
Das  läuft auf dem  Chip ohne Probleme
1
#chip 10F202,4
2
#config OSC=INTRC, WDTE=OFF
3
4
dir GPIO out
5
' none specified in the example. All byte variables are defined upon use.
6
Do Forever
7
8
  ' toggle the first bit - this equates to GPIO.0
9
  set GPIO.0 on
10
11
  'Then wait after the pin goes off
12
  Wait 500 ms
13
  set GPIO.0 off
14
  wait 500 ms
15
16
Loop

von hinz (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Hey Udo !

DAS ist aber schön, das kann ich buchstäblich übernehmen zum testen.
Ich melde mich später nochmal.
Ganz vielen Dank !


LG,

Evert

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
LEIDER Leider hat auch das nicht funktioniert....

Wieder ein OSCAL Failure...

Auch z.B. Löschen vom Ding geht auch nicht...

Ich würde fast sagen kommt her, und ZEIG wie es geht,
weil ich es nicht hinbekomme... :-((

LG,

Evert

von Udo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wie oben schon geschrieben, benutze ich diesen
Brenner. Sollte aber mit anderen auch gehen.

von Udo (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Kannst ja mal die HEX Datei versuchen
zu brennen. Vielleicht tut sich ja was.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Ich habe nochmal nachgeschaut, die SW vom PK 2 ist die Version 2.61.
> Damit ist ein 10F20x nicht programmierbar.

Im "PK2DeviceFile" V1_63_146 ist der 10F202 mit dabei.


Ein PICKIT2 kann fast alles brennen. Sogar AVRs!

Stellersichnichsoan.

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Bewertung
0 lesenswert
nicht lesenswert
P.S.:

Ein PICKIT2 kann auch den OSCCAL neu kalibrieren!


Auch hier: Stellersichnichsoan.

von Thomas E. (picalic)


Bewertung
0 lesenswert
nicht lesenswert
Servus,

ich konnte mal ein Programmierproblem mit dem PK3 dadurch beheben, daß 
ich in den Einstellungen zum PICKit die "Target VCC" auf einen kleineren 
Wert, als 5V gesetzt habe. Mit "Target VCC = 5V" keine Chance, mit 4 
oder 4,5V ging es. Kann mich nicht mehr an den PIC-Typen erinnern, war 
aber definitiv kein LF-Typ, also normal wäre VCC=5V schon richtig 
gewesen.

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Komisch.....
gerade nochmal etwas probiert auf 'n 10F204,
dann quer durch einige Fehlermeldungen und nur mal probiert.
Da hat 'n LED geblinkt mit 5 Sek an, und 5 Sek aus.

Dann denselben Datei geändert in jeweils 200 ms,
und NIX geht mehr !!
Auch nicht 'blöderweise' trotzdem probieren, obwohl fehlermeldungen,
wie vorhin.... NIX !
ES WAR DIESELBE DATEI !!!!!
NUR die Warteschleife wurde von 5 Sek auf 200 ms geändert....

Warum nur mit 10F2xx ? Beim 16F54 würde es auf anhieb funktionieren.

LG,

Evert

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Den Tip mit der Versorgungsspannung hatte ich schonmal probiert.
Ändert sich hier nix...

Blööööd.....

Gibt's noch andere 8-Pin Kontrollern AUSSER diese 10F-Serie ?

von Thomas E. (picalic)


Bewertung
0 lesenswert
nicht lesenswert
Evert D. schrieb:
> Gibt's noch andere 8-Pin Kontrollern AUSSER diese 10F-Serie ?

Jede Menge! Schonmal auf die Produkte-Webseite von Microchip geschaut? 
Die meisten PIC12F... sind 8-Pinner, ich würde die modernen "Enhanced 
Midrange" (12F1xxx) empfehlen.

von Silvio G. (technofreak)


Bewertung
0 lesenswert
nicht lesenswert
Gibt sogar 2 PIC16F...

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> ich würde die modernen "Enhanced Midrange" (12F1xxx) empfehlen.

Der Komfortgewinn haelt sich bei den kleinen in Grenzen.
Ich wuerde die billigeren (12F675/12683/16F684) empfehlen.

von Thomas E. (picalic)


Bewertung
0 lesenswert
nicht lesenswert
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889703:
> Ich wuerde die billigeren (12F675/12683/16F684) empfehlen.

Wenn sie denn billiger wären!
z.B. (Reichelt-Preis):

12F675: 1,15 Euro
        1KWord Flash, nicht selbst programmierbar (Bootloader nicht 
möglich)
        64 Bytes RAM
        4 Mhz interner Takt
        1 16-bit Timer, 1 8-bit Timer, kein PWM
        keine seriellen Schnittstellen
        Lahme Interrupt-Verarbeitung

12F1572: 0,95 Euro
         2KWord Flash, selbstprogrammierbar (kann also Bootloader)
         128 Bytes RAM
         16MHz interner Takt
         1 16-bit Timer, 2 8-bit Timer, 3x16 bit PWM
         EUSART
         Interrupt-Latenz/verarbeitung schnell durch Register-Rettung in 
Hardware (und natürlich zusätzlich durch die mögliche höhere 
Taktfrequenz)
         uvm...

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Na, dann nächste Woche mal die anderen probieren.

Vielen Dank soweit !

LG,

Evert

von Toxic (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe eben nochmal versucht ein mit XC8 kompiliertes "Programm" den 
PIC10F200 zu programmieren : bekomme Fehlermeldungen beim Brennen.
Hab dann eine original Assembler-Template-Datei von Microchip 
verwendet.Ist leider auch fehlgeschlagen.
Moeglicherweise ist das Problem aber der Sprutbrenner selbst,da er einer 
der ersten aus der ersten Generation war.
Im Anhang befindet sich die Template-datei fuer den 10f202 zum Testen.


Evert D. schrieb:
> Gibt's noch andere 8-Pin Kontrollern AUSSER diese 10F-Serie ?

Wie andere schon erwaehnt haben: Microchip hat eine riesige Palette an 
diversen uCs.
Es sieht so aus,als wenn es dir nur auf einen 8 pinnigen Chip ankommt.
Nimm den (enhanced)PIC12F1840 - direkter Nachfolger des PIC12F683.
Mit 4Kbyte Programmspeicher,16-fachen Hardwarestack(10Fxx haben gar 
keinen...) plus reichhaltiger Peripherie ,laesst er sich auch gut in C 
programmieren.
Ausserdem ist er bei Reichelt erhaeltlich....

von mchip (Gast)


Bewertung
0 lesenswert
nicht lesenswert
hinz schrieb:
> http://www.microchip.com/forums/m112296.aspx

Evert D. schrieb:
> Ich habe nochmal nachgeschaut, die SW vom PK 2 ist die Version 2.61.
> Damit ist ein 10F20x nicht programmierbar.

?

http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit%202%20Readme%20v2-61-00%20%28a%29.txt
1
Release Notes for PICkit(R) 2 Microcontroller Programmer
2
PICkit 2    V2.61.00
3
Device File V1.61.00
4
5
*** Important
6
*** PICkit 2 software v2.61.00 requires PICkit 2 OS firmware
7
*** Version 2.32.00 before the application will work correctly.
8
*** Use the "Download PICkit 2 Firmware" selection on the 
9
*** Tools dropdown menu.  The new OS is normally located at
10
*** C:\Program Files\Microchip\PICkit 2 v2\PK2V023200.hex
11
12
24 March 2009
13
-----------------------------------------------------------------
14
Table of Contents
15
-----------------------------------------------------------------
16
1. Device Support List

1
....
2
3
Baseline Devices
4
----------------
5
PIC10F200       PIC10F202       PIC10F204       PIC10F206
6
PIC10F220       PIC10F222
7
PIC12F508       PIC12F509       PIC12F510  PIC12F519 
8
PIC16F505       PIC16F506       PIC16F526 
9
PIC16F54        PIC16F57        PIC16F59
10
11
....

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> 12F675: 1,15 Euro

Bei Reichelt kauf ich sowas auch nicht.
Aus China im 10er Pack ca. 30 ct.

>12F1572: 0,95 Euro
>         2KWord Flash, selbstprogrammierbar (kann also Bootloader)
>         128 Bytes RAM
>         16MHz interner Takt
>         1 16-bit Timer, 2 8-bit Timer, 3x16 bit PWM
>         EUSART
>         Interrupt-Latenz/verarbeitung schnell durch Register-Rettung in
>Hardware (und natürlich zusätzlich durch die mögliche höhere
>Taktfrequenz)
>         uvm...

Fuer 30 Ct leistet der 12F675 vorzuegliches.
Ansonsten geringfuegig teurer der 12F683 (2kWord/128bytes) und
wenn die IOs nicht reichen, zum fast direkten Upgrade der 16F684.
Alle 3 gehoeren zur Midrangefamilie, sind also keine
12 bittigen Krueppel.

Mitunter braucht Mann nicht mehr.

Was ich mit der ganzen Peripherie in einem 8 pol. Gehaeuse
anfangen sollte, muesste Mann mir dann auch erklaeren.

An Bootladern habe ich ebenfalls kein Interesse.



>Evert D. schrieb:
>> Ich habe nochmal nachgeschaut, die SW vom PK 2 ist die Version 2.61.
>> Damit ist ein 10F20x nicht programmierbar.

Beitrag "Re: Wie einen PIC 10F202 programmieren ?"

Lad Dir mal ne Lesebrille runter.

von Toxic (Gast)


Bewertung
1 lesenswert
nicht lesenswert
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889834:
> Was ich mit der ganzen Peripherie in einem 8 pol. Gehaeuse
> anfangen sollte, muesste Mann mir dann auch erklaeren.

Ein uC ist wie eine Toolbox - also eine Werkzeugkiste.Wenn ich eine 
klassische Werkzeugkiste aufmache,dann finde ich da einen 
Schraubendreher,ein Zange,Bohrer und diverses anderes Gelumpe.Je mehr 
ich zur Verfuegung habe desto weniger komme ich in Verlegehnheit gewisse 
Arb eiten nicht durchfuehren zu koennen.
Auf einen 8-pinnigen Pin bezogen,finde ich es gut,dass der PIC12F1840 
z.B. eine interne Spannungsreferenz hat.PIC12F675,683 haben keine.Ebenso 
fehlen I2C und beim F675 PWMhardware.
Ich (allerdings nur ich) habe keine Lust zig verschiedene Pic-Typen auf 
Lager haben zu muessen,wenn ich einen bekommen kann,der je nach Bedarf 
alles zur Verfuegung hat.Als Hobbyprogrammierer kommt es mir auf 30Cent 
Mehrkosten nicht an.
Ich hatte erst vor kurzem ein altes Programm fuer den Pic12F683 
umschreiben muessen,weil ich eine externe Spannungsreferenz(TL431) zur 
Batterieueberwachung verwendete und die mir nur einen sondern 2 von den 
6 wertvollen Pins vergeudetete.Hinzu kommen andere Vorteile die z.B.der 
c-programmierung entgegenkommen oder die Moeglichkeit interne 
Pinbelegungen
per Software abzuaendern und,und und.....siehe Datenblatt.

von Thomas E. (picalic)


Bewertung
0 lesenswert
nicht lesenswert
Toxic schrieb:
> Ich (allerdings nur ich)

Falsch! Ich auch! ;)

von (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Ich (allerdings nur ich) habe keine Lust zig verschiedene Pic-Typen auf
> Lager haben zu muessen,wenn ich einen bekommen kann,der je nach Bedarf
> alles zur Verfuegung hat.

Alles hat der PIC12F1840 mit Sicherheit auch nicht.
Und einen knappen Euro wuerd ich fuer 8 Pinner auch nicht ausgeben.
Wozu Du nun Lust verspuerst ist mir da egal.
Die kleinen STM8 kosten die Haelfte, lassen sich per JTAG/SW
ordentlich debuggen und haben im 32er LQFP-Gehaeuse 25 IOs.

Wenn ich eine interne Referenz brauchen wuerde, wuerde ich vllt.
einen 16LF1508 nehmen. Oder eben eine externe Referenz anklemmen,
die im Regelfall auch eine bessere Spezifikation hat.
Wenn die Pins knapp werden, sind 8 Pinner sowieso schon schlecht
gewaehlt.

Ein 12F675/683/684 ist eher so die digitale Sicherheitsnadel
im Werkzeugkasten. Wenns die nicht tun, nehme ich gelassen
was groesseres.

Wenn ich 16 bit brauche, nehme ich was mit 16 bit Wortbreite.
Renesas oder TI. Wenn ich 32 bit brauche schau ich bei den ARMs,
den V850 oder...
Gleiches gilt fuer DSPs oder FPGAs.

von Thomas E. (picalic)


Bewertung
1 lesenswert
nicht lesenswert
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889950:
> Alles hat der PIC12F1840 mit Sicherheit auch nicht.

Weiter oben wusstest Du schon nicht, was "Mann" mit der Peripherie 
anfangen sollte, und jetzt ist Dir nicht genug drin? Entscheide Dich 
mal!

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889950:
> Die kleinen STM8 kosten die Haelfte,

gibt's aber nicht in 8-Pin DIP - um mal schnell was auf Lochraster 
zusammenzulöten, ist der unbrauchbar!

(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889950:
> Wenn die Pins knapp werden, sind 8 Pinner sowieso schon schlecht
> gewaehlt.

Welch weise Erkenntnis! Ich wäre nie darauf gekommen, daß ein 8-Pin µC 
nicht die richtige Wahl wäre, wenn ich z.B. 20 IOs brauche - danke für 
die Erleuchtung, Meister!

von Toxic (Gast)


Bewertung
0 lesenswert
nicht lesenswert
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag 
#4889950:
> Wenn ich 16 bit brauche, nehme ich was mit 16 bit Wortbreite.
> Renesas oder TI. Wenn ich 32 bit brauche schau ich bei den ARMs,
> den V850 oder...
> Gleiches gilt fuer DSPs oder FPGAs.

Du scheinst ein ausgefuchster Profi zu sein.Ich dagegen bin nur 
Hobbyprogrammierer.Ich bin zwar mit verschiedenen uC Architekturen 
vertraut(man liest ja so allerhand im dollen Internet) aber ich schaffe 
es nicht (und will es auch gar nicht) auf mehreren Gaeulen gleichzeitig 
zu reiten,da bei mir ansonstem unter anderem die Zuverlaessigkeit meiner 
Projekte leiden wuerde.

Einem Profi wie dir wuerde ich nie das Wasser reichen koennen - Hut ab 
was deine Vielseitigkeit und dein Koennen angeht.

von John (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Evert D. schrieb:
> Achja nochwas: Die Software wird geschrieben in Great Cow Basic,
> (...)
> In GCB gibt es ausgezeichnete warteschleifen:
>
> Wait xx us   (µsekunden)
> Oder auch ms (millisekunden), s .... logisch, Sekunden
> Aber auch m für Minuten und sogar h für Stunden.

Wenn du ein Problem mit der Programmierung von Delays in Assembler hast, 
dann benutze doch einen Code-Generator.
z.B.:
http://www.piclist.com/techref/piclist/codegen/delay.htm

Beispiel: Delay für eine Stunde.
1
; Delay = 3600 seconds
2
; Clock frequency = 4 MHz
3
4
; Actual delay = 3600 seconds = 3600000000 cycles
5
; Error = 0 %
6
7
        cblock
8
        d1
9
        d2
10
        d3
11
        d4
12
        endc
13
14
                        ;3599999998 cycles
15
        movlw  0xFF
16
        movwf  d1
17
        movlw  0x84
18
        movwf  d2
19
        movlw  0xD8
20
        movwf  d3
21
        movlw  0x18
22
        movwf  d4
23
Delay_0
24
        decfsz d1, f
25
        goto   $+2
26
        decfsz d2, f
27
        goto   $+2
28
        decfsz d3, f
29
        goto   $+2
30
        decfsz d4, f
31
        goto   Delay_0
32
33
                        ;2 cycles
34
        goto   $+1

Deine „Großartige symbolische Kuh-Allzweck-Programmiersprache für 
Anfänger“ macht auch nichts anderes.

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
John schrieb:
> Beispiel: Delay für eine Stunde.
> ; Delay = 3600 seconds
> ; Clock frequency = 4 MHz
>
> ; Actual delay = 3600 seconds = 3600000000 cycles


'tschuldige, aber das stimmt nicht.

Bei 4 MHz sind es pro Sekunde schon 4.000.000 cycles
Und das 3600 mal.

Macht zusammen 14.400.000.000 cycles

von chris (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Lesen sollte man. Es heisst clock frequency, nicht instruction cycle 
frequency.
Bei pic sind es bei 4mhz OSC 1 Million instruction cycle je Sekunde.

von Evert D. (evertd)


Bewertung
0 lesenswert
nicht lesenswert
Das hat man nun davon, dieses kompliziertes Assembler.
In GCB wäre es

Wait 1 h

gewesen.... ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.