mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Und schon wieder eine Anfängerfrage


Autor: BlackNoir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,


ich habe mich auf PIC-Prozessoren geeinigt, dazu habe ich jetzt ein
paar Fragen:

-Register: Jedes Register liegt warscheinlich bei jedem Proz woanders,
oder ?

-Wo bekomme ich diese Informationen her (für den entsprechenden PIC) ?
 (z.B.: w_test Equ 0x21)

-Welche register kann / darf ich benutzen ?

-Welchen Wert kann ein Register maximal aufnehmen ?

-Wie kann ich verschiedene Interrupts erzeugen, bzw. Abfangen (High an
PortA oder Zeitablauf)...

-Was bedeutet diese Fehler- / Warnmeldung ?

Message[302] C:\PIC\WATCHDOG\MAIN.ASM 71 : Register in operand not
in bank 0.  Ensure that bank bits are correct.

hier der source:

  clrf  nSec;
  clrf  nMin;
  bsf     STATUS, RP0  ; auf Bank 1 umschalten
  movlw  B'00000000'  ; PortB alle output
  movwf  TRISB

-Wofür steht dieser Befehl:         org    4 ?




___________________________________________
Ich möchte eine Schaltung realisieren, die ca. 15Min. auf ein Signal
von der RS232-Schnittst. wartet, wenn Signal kommt, dann soll der timer
zurückgesetzt werden, wenn 15 Min. nichts kommt soll ein PIN auf PortB
High-Pegel haben...

Hat sowas schon jemand gemacht ?


Besten Dank für alle Antworten ...

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zu jedem PIC gibt es ein Datenblatt (engl. Datasheet), in dem alle
Informationen stehen. Die Datasheets kannst Du von Microchips Hompage
(www.microchip.com) runterladen. Auch ein Handbuch (Manual) zum MPASM
ist dort downzuloaden, in dem alle Meldungen erläutert sind.

Dein Projekt hört sich nach WatchDog an, ist nicht besonders schwierig.
Was heisst den "auf ein Signal warten". Soll auf eine Pegeländerung
einer Leitung oder auf ein Datum gewartet werden? Falls auf ein Datum
gewartet werden soll, würde ich einen PIC mit USART (serielle
Schnittstelle) nehmen.

MfG
Andreas Jäger

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Deine Fehlermeldung läßt jeden Nicht-PIC-Benutzer vor Schadenfreude
tanzen :-)

Du must Dich damit abfinden, daß bei den PICs ein Großteil der
Programmierung Dich mit der Banküberwachung und Bankumschaltung
belästigt. Das gilt sowohl für die Daten (RAM) als auch den Code
(Flash). Dies hat auch zur Folge, daß der PIC-Code nicht verschiebbar
ist.

Andere Familien (z.B. 8051, AVR) kennen solche Fehlermeldungen nicht,
da sie einen linearen Adreßbereich haben.
Da ist der Code auch verschiebbar, d.h. man kann eine Routine an
beliebiger Stelle einfügen und sie wird immer korrekt ausgeführt.


Zu Deiner anderen Frage. Üblicherweise gibt es zu jedem Derivat ein *.h
oder *.inc-File, wo die entspechenden Register definiert sind. Sollte
also bei den PICs auch so sein. Dieses File wird dann oben per
"include" in Dein Programm mit eingebunden.



Peter

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter

Nur zur Info:
1) Die Meldung ist eine "Message", keine Fehlermeldung! Wen sie
stört, der kann sie unterdrücken.

2) Die Code-Verschiebbarkeit hat weniger mit der Bankauswahl als
vielmehr mit Page(boundaries) zu tun.

3) Bei anderen Controllern (8051, AVR...) gibt's bestimmt auch so
einiges zu beachten - Mitdenken beim Programmieren ist immer von
Vorteil ;-)

MfG
Andreas Jäger

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klasse Andreas !!!
Ich finde es immer bescheuert , wenn hier im Forum PIC-Fragen gestellt
werden, und man belehrt wird das die PICs beschissen sind.
Dann kommt jemand der meint man sollte auf die AVRs oder 8051
umsteigen.
Jeder Mikrocontroller hat seine Vor- und Nachteile und dann ist noch
die Anwendung wichtig.

Autor: BlackNoir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Tips...


@Andreas: Ja, soll ein Watchdog werden...

Eigentlich würde mir eine Pegeländerung reichen ...

Autor: Andreas Jäger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@BlackNoir ???

Na dann, PIC16F84 und los...
(Datasheets und Manuals lesen nicht vergessen)

MfG
Andreas Jäger

PS: In den meisten Newsgroups/Foren werden übrigens Realnamen gerne
gesehen.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin immer wieder erstaunt, wie wenige Leute auf die Idee kommen,
sich erst mal die Datenblätter vom Hersteller des Prozessores übers
Internet zu besorgen. Dort ist so ziemlich jede Information enthalten,
und so schwer verständlich sind die nicht. Vorausgesetzt natürlich, man
kann einigermassen Englisch lesen.

Gruß
Thorsten

Autor: BlackNoir (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thorsten:

Das sind 622 Seinten und für eine "Quick'n'Dirty" Lösung vollkommen
oversized ...

Englisch ist kein Problem...

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nö, die 622 Seiten lassen sich ohne Probleme auf wenige reduzieren. Die
benötigten Infos findet man leicht mit dem Inhaltsverzeichnis. Bitte
nicht böse sein; wollte damit nur sagen, dass die Datenblätter meiner
Meinung nach die beste Informationsquelle darstellen. Denn alle Autoren
etc. benutzen diese schließlich als Basis.

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.