Forum: Mikrocontroller und Digitale Elektronik Anfänger bittet um Unterstützung (PIC 12F629)


von Rudolf (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebe Profis,

nach fast 30 Jahren Abstinenz mit der Programmiererei (damals noch 
BASIC), habe ich weite Welt der PICs für mein Modellbahnhobby entdeckt. 
Es ist sehr viel schwieriger als ich zunächst annahm.

Ich studierte inzwischen viele Beispielprogramme, insbesondere bei
sprut.de und , soweit für mich verständlich, in diesem Forum.

Man beginnt natürlich mit einfachen Programmen, um hinter die
Geheimnisse zu kommen. Nach vielem erfolglosen probieren, bitte ich um
einen Hinweis, warum mein kleines Progrämmchen nicht funktioniert. Hier
handelt es sich um ein einfaches Ansteuern von Ausgängen in Abhängigkeit
einer Belegung an den Eingängen. Eine Taste drücken --> eine LED an.

Ich glaube ich habe in der Initialisierung alle GP auf digital (CMCON) 
gesetzt, die Ein- bzw Ausgänge in TRISIO eingetragen und die pull-ups 
für GP3 bis 5 eingeschaltet (WPU und OPTION_REG). Ich nahm bisher an, 
das damit, ohne eine Taste zu betätigen die Eingänge auf logisch 1 
liegen. Ich frage nun die Eingänge mit btfss ab. Im Falle es liegt 1 an 
(was keiner Taste gedrückt entspricht) erwarte ich, dass der nächste 
Befehl übersprungen wird.

Leider macht das Programm das nicht und arbeitet den Befehl in der 
darauf folgenden Zeile ab.

Der Fehler liegt nicht im PIC sondern sitzt davor. Ich habe also einen 
Fehler in den Initialisierungen oder in meinem Verständnis.

Ich hoffe auf einen für mich hilfreichen und verständlichen Tipp. wo 
mein Fehler liegt.

Mit freundlichem Gruß

Rudolf.

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


Lesenswert?

1
  call  0x3FF      ;Kalibrierungswert holen
2
  movwf  OSCCAL      ;Kalibrierung

Lass das mal weg.

von Erich (Gast)


Lesenswert?

Doppelpost !!!

Gestern noch als Christian Weber (Gast)

Beitrag "Anfänger sucht Unterstützung beim Flashen PIC12F629 mit PICKit3"

Heute als Rudolf Ratlos,

Und morgen?

von Poppeldost (Gast)


Lesenswert?

>Heute als Rudolf Ratlos,

>Und morgen?


Als Erich. Tja -so ist das, wenn man als Gast posten kann.

von Witkatz :. (wit)


Lesenswert?

Rudolf schrieb:
> Leider macht das Programm das nicht

MIt _MCLRE_ON ist GP3 als Reset konfiguriert.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Hi,
nur ein hinweis, benutze doch in mplapx den simulator, weil dort kannst 
du dir in ruhe step by step alle resourcen/sfr änderungen in jedem 
programschritt anschauen.

ich habe deine source in 2 minuten als mplabx projekt am laufen gehabt.
... und dann siehst du schnell wo es hackt!

ich würde auch eher c-programming andenken, ich finde den einstieg dann 
wesentlich leichter, da besser lessbar und später auch noch 
nachvollziehbar. ausserdem gibt es tonnen von beispielen im netzt zu 
finden.

am ende kommt es auf jedes bit an was man setzt oder auch nicht und 
daher ist das handbuch irgendwann pflichtlektüre.

ich orakel - den fehler findest du an einen abend (15min habe ich 
investiert )... mit dem simulator und du hast danach wesentlich mehr 
spass mit neuen projekten!

das sollte doch genug motivation sein, jetzt die tools zu installieren?!


mt

: Bearbeitet durch User
Beitrag #5316231 wurde vom Autor gelöscht.
von Apollo M. (Firma: @home) (majortom)


Angehängte Dateien:

Lesenswert?

hi,
zum spielen attached das simulator asm file sollte auch in hw lauffähig 
sein.

mt

von Apollo M. (Firma: @home) (majortom)


Angehängte Dateien:

Lesenswert?

next ... copy/past bug corrected!

von Apollo M. (Firma: @home) (majortom)


Angehängte Dateien:

Lesenswert?

... und hier noch die version in c für xc8 compiler.

mt

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... und für factory calibration bitte hinzufügen

OSCCAL = _READ_OSCCAL_DATA(); //get factory calibration value

bzw. varianten mit eigenen werten

//OSCCALbits.CAL0 = 1; //own calibration value for int. osc
//OSCCAL = 0x018; //set CAL2 and CAL1

mt

von Thomas E. (picalic)


Lesenswert?

Apollo M. schrieb:
> ... und für factory calibration bitte hinzufügen
>
> OSCCAL = _READ_OSCCAL_DATA(); //get factory calibration value

soweit ich die Doku des XC8 verstehe, macht er das im Startup-Code schon 
automatisch, wenn man es ihm nicht ausdrücklich verbietet.

Apollo M. schrieb:
> und hier noch die version in c für xc8 compiler

diese Version macht nicht das gleiche, wie die Asm-Version - die 
C-Version schaltet nämlich die LEDs nur ein und nie wieder aus!

: Bearbeitet durch User
von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... calibration

ja, in mplabx läßt sich unter project properties/xc8 linker die 
calibration option auswählen und auch ein user value eintragen.

ich finde es aber transparenter direkt im code. ich benutze of ja eh 
schon code um z.b.

- die calibrierung in abhängigkeit von der temperature zu ändern oder
- geignete "krumme" osc werte (wie z.b. 8.192MHz statt 8MHz) zu erhalten 
um z.b. geringere zeitfehler mit timern zu bekommen.

die fuse bits (config) sind für mplabx auch nicht direkt im code 
notwendig, weil diese im project file hinterlegt werden, aber ohne 
direkt im code ist es weniger portable/re-usable.

... automatische variante?! keine ahnung kenne ich nicht. erzähl mal 
bitte mehr dazu.


hinweis, es gibt "medizin" um den xc8/16/32 im pro mode laufen zu 
lassen,
so ist der c-code hier z.b. nur 3 byte länger als die asm variante.
entscheident bzgl. code size ist aber oft eher wie das problem codiert 
wird. einige program snippets meiner projekte habe ich gefühlt 100mal 
neu geschrieben und es wurde immer besser bzgl. size/speed aber auch die 
code ästhetik.

den mplabx simulator kann ich als startpunkt/-hilfe empfehlen, wobei 
dieser auch einige einschränkungen und fehler hat.

wie immer geht viel zeit drauf, um mit den tools erstmal anfangen zu 
können.

ich finde, die pic's haben oft wesentlich umfangreichere on-chip 
peripherie als avr's ...

meine recht komplexen lieblinge sind:

- CTMU  Charge Time Measurement Unit
- SMT  2 x 24-bit Signal Measurement Timer
- DSM  Data Signal Modulators
- NCO  Numerically Controlled Oscillator


der pic cpu core erscheint etwas "krank" mit pros und cons.
zum datenschaufeln eher nicht, aber für embbeded control wieder genial 
geeignet.

ich lerne immer wieder gerne dazu und lese deshalb oft den code von 
anderen projekten. interessante details erkennt man so oft immer 
schneller.

z.b. benutzt kaum einer die genialen gpio register der avr's um flags in 
bit struktruren zu packen die sehr geringe code size generieren, da in 
diesen adressbereich bit befehle erzeugt werden UND bei reset diese via 
hw zurückgesetzt werden.


mt

von Apollo M. (Firma: @home) (majortom)


Angehängte Dateien:

Lesenswert?

... diese Version macht nicht das gleiche, wie die Asm-Version - die
C-Version schaltet nämlich die LEDs nur ein und nie wieder aus!

korrekt - danke thomas!

das sollte eigentlich sofort aufleuchten, da in dem program 
bit-orientiert auf das gpio zugegriffen wird.

als finderlohn attached nun eine variante, die die leds toggled, wenn

... related button was pressed.

so etwas unterstützt heute fast jeder controller in hw. also die 
erkennung, ob eine H-L oder L-H flanke vorliegt und bzgl. der quelle die 
port pinzuordnung.


mt

von Peter D. (peda)


Lesenswert?

Rudolf schrieb:
> habe ich weite Welt der PICs für mein Modellbahnhobby entdeckt.
> Es ist sehr viel schwieriger als ich zunächst annahm.

Du machst es Dir nur unnötig schwer, wenn Du mit dem veralteten PIC12 
anfängst.
Nimm ab PIC18 aufwärts, da fallen viele Einschränkungen weg, d.h. das 
Programmieren ist deutlich komfortabler und er hat auch weniger 
Fallgruben. Und er ist oftmals auch billiger als die Museumstypen.
Besonders bequem ist ein PIC18 mit USB-Bootloader.

: Bearbeitet durch User
von Thomas E. (picalic)


Lesenswert?

Apollo M. schrieb:
> ... automatische variante?! keine ahnung kenne ich nicht. erzähl mal
> bitte mehr dazu.

Das Manual zum XC8-Compiler erzählt dazu im Abschnitt "Library 
Functions", bei "__OSCCAL_VAL":
"Note that this function is automatically called by the runtime start-up 
code (unless you have explicitly disabled this option, see Section 
4.8.54 '--RUNTIME: Specify Runtime Environment') and you do not need to 
call it to calibrate the internal oscillator."

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... pic18?
ja und nein, weil die advanced core types gibt es nur mit 20/28/40 pins 
und daher haben pic10/12/16 einen guten daseinsgrund.

die umfangreichste on-chip pheripherie haben pic16, wobei pic18 immer 
mehr nachrüstet.
pic18 kommt dafür mit mehr mips, doppelten stack, befehlserweiterung, 
events system, besseres interrupt system, hw multiplizierer, ... daher.

wenn pic18 dann k42 typen andenken, z.b. das monster pic18lf26k42.

als orientierung mal ideen für pic's bis 18pins und besser immer die lf 
variante andenken!

- pic10 (6pin): pic10f322
- pic12 (8pin): pic12f1572, pic12f1612, pic12f1822, pic12f1840
- pic16 (8pin): pic16f18313
- pic16 (14pin): pic16f18326, pic16f1825, pic16f1615
- pic16 (18pin): pic16f819, pic16f1455

key ist welche on-chip peripherie ich brauche - und auch anwenden kann.
wie z.b. mit 5/8/10bit dac, 10 oder 12bit adc, 8/16/24bit timer, 
10/12/16bit pwm, ...

wer steuern/messen und/oder regeln will ... für den lohnt es sich 
besonders pic's mit dieser on-chip peripherie auszusuchen UND sich damit 
intensiv zu beschäftigen:

- CTMU  Charge Time Measurement Unit
- SMT  2 x 24-bit Signal Measurement Timer
- NCO  Numerically Controlled Oscillator
- DSM  Data Signal Modulators


die low power funktionen sind auch eine stärke der pic12/16 und toppen 
oft pic18 und attiny/atmega - wenn man die entsprechenen funktionen 
richtig einsetzt.

mt


p.s. um mal eine idee zu bekommen, wie umfangreich die pic on-chip liste 
ist ...

PPS  Peripheral Pin Select
PMD  Peripheral modul disable
PRG  The Programmable Ramp Generator
HLVD  High/Low-Voltage Detection
DSM  Data Signal Modulators
SMT  2 x 24-bit Signal Measurement Timer
OPA  Operational Amplifiers
ADC  12bit
DAC  10-bit
ZCD  Zero Cross Detection
LVD  Low-Voltage Detection
I/O  2x100mA
I/O  1x50mA
RS-485  EUSART
CLC  3-4x Configurable Logic Cell
SR Latch Emulates 555 Timer applications
PRG  Programmable Ramp Generator
PSMC  Programmable Switch Mode Controller
AT  Angular Timer
HLT  Hardware Limit Timer, Timer Trigger Mode
CRC/SCAN Cyclic Redundancy Check with Memory Scan
PID  Programmable PID controller
ADC2  ADC with Computation
MathACC  Math Accelerator
POR  Power on Reset
CTMU  Charge Time Measurement Unit
ULPWU  Ultra Low-Power Wake-Up
NCO  Numerically Controlled Oscillator
CWG  Complementary Waveform Generators
CVD  Capacitive Voltage Divider
IVR  Internal Voltage Regulator
ULPWU  Ultra Low-Power Wake-Up
ID  Internal Debugging without debug header
TIM  TEMPERATURE INDICATOR

: Bearbeitet durch User
von Apollo M. (Firma: @home) (majortom)


Lesenswert?

... OSOSCCAL = _READ_OSCCAL_DATA(); ?

also in mplabs projekten MUSS die linker option explizit ausgewählt 
werden oder das makro im code aufgerufen werden. wenn der xc8 compiler 
von der kommandozeile aufgerufen wurde, dann macht es der linker 
automatisch.

danke für den hinweis thomas!

ich finde, dass ist irgendwie unlogisch, das mplabs die option off 
gesetzt hat. daher meine empfehlung - besser im code explizit das makro 
aufrufen.


will mal jemand sehen wie man auch mit wenig resourcen (pic12/16) "time 
slice task priority management" realisieren kann um pseudo multi threads 
zu implementieren?
damit man z.b in richtung "echtzeitfähigkeit" mit seiner anwendung gehen 
kann.

also quasi parallel irgendwas in richtung
- ui bedienen (anzeige, keys, beep sound)
- daten holen, verschicken
- rumrechnen
- sensoren abfragen
- ...

mt

von Rudolf (Gast)


Lesenswert?

Hallo majortom,

vielen Dank für deine Listings und die vielen Hinweise.
Die C-Listings sehen tatsächlich einfacher und verständlicher aus. Ich 
denke intensiv darüber nach, meinen inneren Schweinehund zu töten und 
mich intensiv mit C zu beschäftigen.

Das asm-listing und der natürlich zugehörge Blick in das Datenblatt trug 
wesentlich zum Verständnis bei. Die Schreibweise wie z.B.
"movlw   1<<CM2|1<<CM1|1<<CM0" konnte ich bisher nirgendwo finden. Wie 
das funtioniert ist mir klar, aber gibt es dazu irgendwelche 
Literaturstellen für derartige Kurzformern?

Mit dankbarem Gruß

Rudolf.

von Thomas E. (picalic)


Lesenswert?

Apollo M. schrieb:
> ich finde, dass ist irgendwie unlogisch, das mplabs die option off
> gesetzt hat. daher meine empfehlung - besser im code explizit das makro
> aufrufen.

Stimmt - das ist verwirrend! Wenn man das Compiler-Manual liest, denkt 
man, die Kalibrierung wird automatisch in den Startup Code eingebaut und 
man geht davon aus, daß auch die IDE bei einem neu angelegten Projekt 
erstmal die Compiler Default Settings vorgibt. Bin ich natürlich drauf 
'reingefallen...

von Thomas E. (picalic)


Lesenswert?

Rudolf schrieb:
> nach fast 30 Jahren Abstinenz mit der Programmiererei (damals noch
> BASIC), habe ich weite Welt der PICs für mein Modellbahnhobby entdeckt.
> Es ist sehr viel schwieriger als ich zunächst annahm.

Wenn Du magst, kannst Du Dir ja auch mal mein PICALIC-Projekt 
(www.picalic.de) angucken. Ist zwar ursprünglich eher für den 
RC-Modellbereich entstanden und ein bisschen in die Jahre gekommen, aber 
es kann natürlich auch Beleuchtungs- oder andere Steueraufgaben auf der 
Modellbahnanlage übernehmen. Statt Servosignal kann man auch einfache 
GPIO-Pins oder eine serielle Schnittstelle Steuersignal benutzen. Das 
serielle Protokoll kennt auch eine Adressierung der einzelnen 
Controller, so könnte z.B. jedes Haus einen PIC für die Beleuchtung 
bekommen und man kann dann über eine einzige Datenleitung für alle 
Häuser z.B. die Lichter im Haus, blinkende Leuchtreklamen, 
Fernsehgeflacker im Wohnzimmer, das Leuchtfeuer im Leuchturm uva. 
individuell schalten.

von Norbert S. (pianoforte)


Lesenswert?

Warum muss man in der heutigen Zeit sich noch mit einem pic12f629 
begnügen.
Und warum den ganzen Kram in Assembler programmieren?

Ich würde Ihnen einen modernen pic18f empfehlen. Dazu den Pickit 3 und 
dann alles in C programmieren.

Der Compiler macht dann schon einen guten Assembler Code daraus.

Und man kann das ganze Programm viel Übersichtlicher gestalten.
Und auch die ganzen Funktionen die man benötigt schön vom restlichen 
Programm trennen.

Mit freundlichen Grüßen

von Thomas E. (picalic)


Lesenswert?

Norbert S. schrieb:
> Warum muss man in der heutigen Zeit sich noch mit einem pic12f629
> begnügen.

Man muss nicht, aber man darf, wenn man will. Man darf auch in Assembler 
programmieren, wenn man eine eher Hardware-orientierte Denke hat und den 
technischen Dingen bei der Ausführung seines Hobbys gerne auf den Grund 
geht. So, wie manche Leute auch heute noch gerne ihre Modellflugzeuge 
aus Holz bauen, wo andere auch fragen könnten: "warum tut man sich das 
heute noch an, wo es doch so tolle Flieger von Hobbyking aus China fix 
und fertig aufgebaut gibt, und das auch noch billiger, als die 
Materialkosten in Deutschland?"
Wenn man Assembler kann, kann man auch das ASM-Listing des C-Compilers 
lesen und ggf. den C Sourcecode umschreiben, damit besser optimierter 
Code herauskommt (zumindest an kritischen Stellen). Assembler lernt man 
aber nicht, wenn man nur in C programmiert.

Ich wollte auch schon mal jemanden vorschlagen, einen modernen 
PIC12F1xxx statt 12F675 zu nehmen, der Mann hat dankend abgelehnt, weil 
der Komparator beim 675er bessere Werte hatte. Un damit hatte er Recht! 
So pauschale Empfehlungen "heute nimmt man besser die Cotroller-Familie 
xy" sind grundsätzlich falsch.

Ein paar LEDs blinken lassen kann auch der 12F629, und dafür könnte man 
ihn auch problemlos in C programmieren, dann braucht man sich um 
Bankselects auch nicht zu kümmern. Seine Peripherie und deren 
Programmierung ist bestimmt einfacher zu überblicken, als die der 
PIC18-Familie, oder z.B. gar die eines STM32Fxxx (für diejenigen, die 
meinen, 8-Bit wäre tot und heute nimmt man für egal was einen ARM).

Norbert S. schrieb:
> Ich würde Ihnen einen modernen pic18f empfehlen. Dazu den Pickit 3 und
> dann alles in C programmieren.

Ich sage Dir, warum ich den noch nie benutzt habe: Keine einzige meiner 
privaten Basteleien hatte bislang einen Controller mit 20 Pins oder 
mehr. Die meisten sind 8-Beiner, viele haben 14 Pins, selten mal 18. 
Warum sollte ich mich mit einer Controllerfamilie beschäftigen, deren 
Gehäuse immer eine Nummer zu groß für meine Applikationen sind?

von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

> Ich wollte auch schon mal jemanden vorschlagen, einen modernen
> PIC12F1xxx statt 12F675 zu nehmen, der Mann hat dankend abgelehnt, weil
> der Komparator beim 675er bessere Werte hatte. Un damit hatte er Recht!

Warum sollte der 12F675 einen besseren Comparator haben?

von Witkatz :. (wit)


Lesenswert?

Fred R. schrieb:
> Warum sollte der 12F675 einen besseren Comparator haben?

Den Aufschluß gibt das Datenblatt Table COMPARATOR SPECIFICATIONS. Wenn 
man die Werte des PIC12F675 mit z.B. PIC12F1840 oder PIC12F15712 
vergleicht, dann sind beim 675er tatsächlich kleinere Werte für Response 
Time und Input Offset Voltage. Wobei beim 675 die Tabelle deutlich 
kleiner ist und einige Werte mit "parameters are characterized but not 
tested" markiert sind, was auch immer das bedeuten mag.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

Ohne Zweifel werden 8bit-Controller in 100 Jahren  nicht tot sein!

Ich habe gerade 2 Projekte (Toaster-Controller und Multi-Timer) in C am 
laufen mit 6pin pic10lf322 and attiny10 beide 0.5KWorte mit 64 bzw. 32 
Byte RAM.

Unglaublich was schon mit diesen begrenzten Resourcen möglich ist. Aber 
gerade auch wegen der On-Chip Peripherie.

Ich habe von pc10xx-pic24xx, attiny/atmega, arm cortex 3/4 und espxx 
alles in den Händen und das reicht mir sicher bis zum Ableben.

Die Herausforderungen sind doch "The Art of Programming", die On-Chip HW 
besser zuverstehen und einzusetzen und die Suche nach einer guten Idee 
die das Problem clever löst.

Weniger löten ist ja auch viel gesünder - macht aber trotzdem immer noch 
Spaß!


mt

p.s. Ich verliere regelmäßig den Überblick, bei den vielen Details und 
Bits und ...

: Bearbeitet durch User
von Thomas E. (picalic)


Lesenswert?

Apollo M. schrieb:
> p.s. Ich verliere regelmäßig den Überblick, bei den vielen Details und
> Bits und ...

Ich verliere beim Assembler-Programmieren auch immer den Überblick, wenn 
der CPU-Kern mehr als nur ein Arbeitsregister hat... :D

Witkatz :. schrieb:
> Wobei beim 675 die Tabelle deutlich
> kleiner ist und einige Werte mit "parameters are characterized but not
> tested" markiert sind, was auch immer das bedeuten mag.

Es ging damals wohl um die Offset-Spannung, und da sind max. +/-60mV 
gegen +/-10mV doch schon ein deutlicher Unterschied.

: Bearbeitet durch User
Beitrag #5318227 wurde vom Autor gelöscht.
von Fred R. (Firma: www.ramser-elektro.at/shop) (fred_ram)


Lesenswert?

Wie man auf meiner HP sieht, verwende ich am liebsten die pic12f1571 / 
72.
Da wird der Offset mit typisch 7.5 mV angegeben.
Ausserdem kann man ihn feingranularer über die VREF / DAC Kombination 
einstellen.

von Witkatz :. (wit)


Lesenswert?

Fred R. schrieb:
> pic12f1571 /
> 72.
> Da wird der Offset mit typisch 7.5 mV angegeben.

Da siehst du es, bei PIC12F675 sind es typisch 5mV, max. 10mV.

von +++ (Gast)


Lesenswert?

> mit 6pin pic10lf322

Das ist Falschgeiz.

Ausser Mann will vielleicht einem Matchbox Car einen Blinker verpassen.

Da ich gern fuer Projekte das Zeug am Lager hab, muesste ich sowas
erst bestellen. Da bleib ich doch lieber bei DIP-8 oder SOP-8.

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

+++ schrieb:
> Das ist Falschgeiz.
>
> Ausser Mann will vielleicht einem Matchbox Car einen Blinker verpassen.


Nee, das Teil ist genial!

Weil ...
- super klein
- mit NCO und CLC kann man z.b. lineare PWM zur Lüftersteuerung bauen 
oder linearen VCO oder ...
- Zeitsteurung mit Touch UI
- Toastersteuerung mit allem Pipapo was Toaster ab 100€ drauf haben

Genau so genial Atiny10, weil auch super klein!

Letzter Einsatz dieser Zauberlehrlinge war in meinen DECT Telefon, um 
auf "long-press" einer Taste ein Eingabemakro abzufahren, damit die DECT 
Station gewechselt wird und ich nicht in 4 Untermenues 7-mal die 
Tastature quälen muss. Weil die Dinger so schön klein sind paßt das 
direkt auf die Tastaturmatrix und fertig!

Oder für ein geliebtes Transistorradio oder ein altes Multimeter eine 
auto power-off Funktion mit power-on via Touch ...

King ist hier das Package sot23-6, daher die zwei Riesen bekommen von 
mir eine klare Empfehlung!


mt

: Bearbeitet durch User
von SJW (Gast)


Lesenswert?

pic-gcc
command not found: pic-gcc

PIC sucks!

>Genau so genial Atiny10, weil auch super klein!


kann man nur nirgends kriegen für billich.

von +++ (Gast)


Lesenswert?

> command not found: pic-gcc

Mit dem XC8 vermisse ich den nicht wirklich.
Zur Not hab ich auch noch nen alten IAR.

Die wirklich interessanten Dinge tut Mann auf den
kleinen Dingern eh in Assembler.

von +++ (Gast)


Lesenswert?

> Weil die Dinger so schön klein sind paßt das
> direkt auf die Tastaturmatrix und fertig!

Nen SO-8 haett auch gepasst!

GARANTIERT!

Ich hab meine DECTs sogar von 3x AAA auf 3x AA umgebaut.
Das hat zum Schluss auch gepasst!

von Apollo M. (Firma: @home) (majortom)


Lesenswert?

+++ schrieb:
> Die wirklich interessanten Dinge tut Mann auf den
> kleinen Dingern eh in Assembler.

Ich mache auch für diese Kleingeister alles in C, der Compiler optimiert 
im Pro Mode recht ordentlich.
Man muss allerdings immer wiedermal clever rumprobieren, wie es der 
Compiler noch optimaler hinbekommt. Also gehts erstmal um Funktion und 
dann Size - gutes Training.

mt

p.s. Medizin für den Pro Mode on Request!

Beitrag #5341496 wurde von einem Moderator gelöscht.
Beitrag #5345300 wurde von einem Moderator gelöscht.
von Chris S. (aaa)


Lesenswert?

Naja, das ASM file hat zwei Denkfehler.

1) _MCLRE_ON  , dies heisst GPIO.3 ist nicht verfügbar.
2)  GPIO.3 hat kein pull-up, dieser muss extern sein.

Beitrag #5345428 wurde von einem Moderator gelöscht.
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
Noch kein Account? Hier anmelden.