Forum: Mikrocontroller und Digitale Elektronik Neuling Bei PIC


von Siegfried S. (dieleena)


Lesenswert?

Hallo,

Ich möchte PIC-Programmierung erlernen.
Welches Buch ist dabei Hilfreich?

bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Hi

Das große PIC-Mikro Handbuch ist eigentlich nicht schlecht, aber kostet 
recht viel. Eigentlich reicht es wenn du dir die Seite von Sprut( 
www.sprut.de) durchliest. Dort stehen alle wichtigen Informationen für 
den Anfang. Brauchbar ist auch das Tutorial auf 
www.fernando-heitor.de(Das Forum selbst ist auch sehr hilfreich und 
interessant)

Ich empfehle dir gleich mit den PIC18F anzufangen.

mfg Schoasch

Ps.: Mit welcher Programmiersprache willst du anfangen?

von Siegfried S. (dieleena)


Lesenswert?

hallo,

@ "Mit welcher Programmiersprache willst du anfangen?" weis ich noch 
nicht.
Am besten wäre eine C++ ähnliche.
bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Wie wärs denn dann mit C?!

Dann empfehle ich nochmal die PIC18F ;-). Dafür gibts auf 
www.microchip.com eine IDE (MPLAB) und dazu einen C-Compiler (C18). 
Weiters ist im MPLAB auch der CCS-Compiler includiert. Da kannst du dann 
auch die kleinen PICs (PIC10F und ein paar PIC12F) in C programmieren.

Für den C18 gibts auch ein "Getting start", wo der Start recht einfach 
erklärt wird.

Hast du schon ein programmiergerät?

Gibts noch irgendwelche Fragen?

mfg Schoasch

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
werde die Compiler mir ansehen.
Programmiergerät habe ich. (GALEP4)
bis bald Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo,

Habe eine kleine Frage. Wer ist bereit, einige Grundkenntnisse für PIC 
beizubringen. Von Vorteil wäre es, wenn diese/r im Raum 55743 wohnt, und 
gegebenfals sich auch mit mir direkt in Verbindung setzen würde.

bis bald Siegfried

von Timo Z. (typic)


Lesenswert?

Hallo Siegfried

Ich schreibe gerade ein Tutorial, für den leichten Einstieg in die 
PIC-Welt.
Ich habe es noch nicht veröffentlicht und suche jemanden, der es mal 
Probe liest.

Da ich aber persöhnlich keinen PIC-Anfänger kenne, für den ein solches 
Tutorial interressant wäre, kommst du sozusagen wie gerufen.

Du kannst es ja mal durchlesen. Es ist speziell für komplette Anfänger.
Ich kann dir dann auch ein bisschen weiter support geben.

Typic

von Thomas (Gast)


Lesenswert?


von Siegfried S. (dieleena)


Lesenswert?

Hallo Michael,
habe nocheinmal ins Forum gesehen. Werde dieses mal verarbeiten und 
melde mich wieder.
gute Nacht und bis bald Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo Timo und Thomas
Etwas zu spät geworden. Habe bei der Anrede nicht aufgepasst.
@Thomas, Link ist sehr gut.
@Timo, lese gerne deine Anleitung durch, kannst dich ja wieder melden.
bis bald Siegfried

von nichtmehrganzneuling (Gast)


Lesenswert?

ich hab jetzt nicht genau geschaut, obs schon einer geschrieben hat, 
aber wer pichilfe sucht sollte auch mal hier rein schauen!!!

http://www.fernando-heitor.de/

dauert zwar manchmal ein klein wenig länger als im mikrocontroller.net 
aber ist halt ein reines picfroum.

gruß

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
Habe mir vorgenommen, dieses in C zu programmieren. Die Schreibweise 
kann man etwas mit C++ vergleichen.
Habe aber noch wichtige Fragen.
Suche die Syntax-Befehle für den PIC ( z.B.  PORTA,  PORTB usw.). Sollte 
in deutscher Sprache sein.
Weiter möchte ich meine PIC in der Platine programmieren (Bootloader ??)
Zum externen brennen nutze ich GALEP4.
Ist leider noch nicht alles, was ich wissen möchte. Melde mich wieder.
bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Hi

Das Galep4 kann auch ICSP(In curcuit serial programming... sprich in der 
Schaltung) brennen. Ich hab selbst ein Galep4, jedoch hab ich dieses 
Feature nie benutzt. Ich hab mir von Sprut einfach den Brenner8minip 
nachbebaut und benutz jetzt den zum brennen. Der Vorteil hier liegt da, 
dass ich jetzt über USB und in der Schaltung brennen kann.

Von Bootloadern halte ich recht wenig, weil es da zu Problemen mit dem 
Interrupt und mit dem speicher kommen kann. Und das umgehen diese 
Probleme will ich eigentlich vermeiden ;-)

>>Suche die Syntax-Befehle für den PIC ( z.B.  PORTA,  PORTB usw.). Sollte
>>in deutscher Sprache sein.
Was meinst du denn damit genau? Schau am besten ins Headerfile deines 
Compilers, dort stehen die drin.

mfg Schoasch

von Siegfried S. (dieleena)


Lesenswert?

hallo,
@Schoasch, dieses habe ich nicht verstanden. habe im Headerfile 
nachgesehen.
"Was meinst du denn damit genau? Schau am besten ins Headerfile deines
Compilers, dort stehen die drin."
Ich habe damit gemeint, wie z.B. die schreibweise, um den Port A "zu 
lesen oder zu schreiben", oder einem Timer die Zeit mitgeben, ist.

Werde warscheinlich den PIC16F877-20/P bei meinem ersten Pic-Projekt 
einsetzen. Bedingt durch die I/O's muß ich 4 Stück auf meinem Board 
bringen.

Frage 1:
kann ich die 8 analog input channels auch für digital I/O's verwenden?
Frage 2:
Wie oft kann ich den EEPROM beschreiben?
Frage 3:
Wenn ich im C-Sourcecode eine Variable z.B. 8bit Zähler angebe, wird 
diese im Data Memory(RAM) angelegt?
Frage 4:
Im Datenblatt sind 3 Pin angegeben mit RD, WR, CS. Kann ich mit diesen 
in verbindung mit "Port D" dem PIC aus einem externem Bussystem Daten 
übertragen oder auch abfragen?
Frage 5:
Da ich 4 PIC auf meinem Board benötige, muß ich dann für jeden PIC einen 
Quarz vorsehen, oder geht dieses auch anderst?
Frage 6:
Für "ICSP(In curcuit serial programming... sprich in der
Schaltung) brennen" benötige ich eine 5 poligen Anschluß. Da die 5 Volt 
Stromversorgung nicht nur für die PIC's benötigt werden, muß ich dann 
beim Programmieren die 5V-PIC zu den anderen IC's unterbrechen ?
Frage 7:
Benötigt der PIC für die ICSP eine erste grundprogrammierung?

bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Hi

>>Werde warscheinlich den PIC16F877-20/P bei meinem ersten Pic-Projekt
>>einsetzen. Bedingt durch die I/O's muß ich 4 Stück auf meinem Board
>>bringen.

Würden nicht auch IO-Expander gehen? Das wär vl einfacher und auch 
billiger.

WIch will nicht unhöflich sein, aber einige deiner Fragen lassen sich 
durch einen kurzen Blick ins Datenblatt einfach beantworten.(Siehe 
Datenblatt Seite:3)

>>kann ich die 8 analog input channels auch für digital I/O's verwenden?
Ja, kannst du. Beachte aber das RA4 ein Open-Drain Ausgang 
ist.(Datenblatt Seite 12)

>>Wie oft kann ich den EEPROM beschreiben?
"1,000,000 erase/write cycle Data EEPROM memory typical"

>>Wenn ich im C-Sourcecode eine Variable z.B. 8bit Zähler angebe, wird
>>diese im Data Memory(RAM) angelegt?
Variablen werden wohl im Ram abgelegt. Ich bin mir da aber nicht 
sicher.. aber ich glaub, man kann auch durch einstellung des 
Linkers/compilers einfluss darauf nehmen. Am besten ist, du fragst Bernd 
im www.fernando-heitor.de Forum

>>Im Datenblatt sind 3 Pin angegeben mit RD, WR, CS. Kann ich mit diesen
>>in verbindung mit "Port D" dem PIC aus einem externem Bussystem Daten
>>übertragen oder auch abfragen?
Das gehört zum Parallel Slave Port (PSP). Ja kannst du.

>>Da ich 4 PIC auf meinem Board benötige, muß ich dann für jeden PIC einen
>>Quarz vorsehen, oder geht dieses auch anderst?
Du kannst einen Quarzoszillator für mehrere PICs verwenden, einen Quarz 
jedoch nicht. Das würde auch Probleme beim Platinen routing machen.

>> muß ich dann beim Programmieren die 5V-PIC zu den anderen IC's >>unterbrechen
Ich würd mal behaupten, dass hängt von der Schaltung(Belegung der 
ICSP-Pins) und deinem Brenner ab(ob diese alle PICs auch treiben kann).

>>Benötigt der PIC für die ICSP eine erste grundprogrammierung?
Nein.

mfg Schoasch

Ps.: ICh möchte dir das Forum von Fernando Heitor ans herz legen. Dort 
wirst du sicher noch einiges lernen.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
@Schoasch
Danke für deine ausführliche Antworten.
Ich finde es nicht als unhöflich, erst einen Blick ins Datenblatt zu 
werfen oder selbst im Internet suchen. Diese Aktionen sollten immer 
zuerst erfolgen. Kein Problem wenn ich auf solches hingewiesen werde.
Muß leider von mir preisgeben, das ich kein Englich gelernt habe. Somit 
bin ich öffters auf die hilfsbereiten Mitglieder von Forums angewiesen.
Die vorgeschlagene IO-Expander Version werde ich im Auge behalten. Muß 
in Eagele 3.55 erst das Libary anlegen, und dann im Schaltplan die 
Möglichkeit einfliesen lassen. Was ich voraus an I/O's für das Board 
abschätzen kann, sind wie folgt.
32 Out für Opto
16 In für Opto
16Out für Kontroll LED
mal sehen, ob ich für die Opto IO-Expander 8Bit oder seriell mache, das 
gleiche für die LED
3 In für WR,RD,CS
8 In/Out für daten
1 IN für Reset
X für ICSP
X für VCC/GND

bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Hast du dir Spruts Seite schon zu gemüte geführt? Und auch Fernando 
Heitors Seite?
www.sprut.de
www.fernando-heitor.de
Da stehen sehr viele Infos auf Deutsch.

Wie schnell soll den auf alle Ein- und Ausgänge zugegriffen/reagiert 
werden?
Bei den Eingängen würd sich ein IO-Expander mit Interrupt anbieten. 
Maxim und NXP haben da einige im Angebot.

für die Ausgänge(zb für die LEDs) wären zb.: schieberegister eine 
überlegung wert.

Du hast oben geschrieben, dass du in C programmieren willst. Und wieso 
nimmst du da dann einen PIC16F? Hast du dafür schon einen Compiler? 
Ansonst würd ich dir wirklich einen PIC18F ans herzen legen.

HAst du Probleme mit SMD Bauteilen?

Erklär mal bitte etwas mehr über dein Projekt. Vl kann man dir dann 
etwas besser Helfen.

mfg Schoasch

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
habe die Seiten mir angesehen.
Der Zugriff auf die Ein- Ausgänge ist unterschiedlich.
Die Ausgänge für die LED sind nur zur Kontrolle.
Die 32 Ausgänge müssen mindestens 10kHz verarbeiten.
die 16 Eingänge sollen relativ schnell reagieren, da diese entsprechend 
je einem Eingang zwei der 32 Ausgänge abschalten soll.
Die 8 I/O für Daten und die 3 Steuerbit müssen mit dem Bussystem 
mithalten.
Der IO-Expander muß ich mir ansehen, da ich diese nicht kenne.
Zur Zeit habe ich den Compiler CC5X. Auf der Homepage gibt es auch einen 
CC8E.
Werde mir auch die PIC18F... ansehen.
Probleme mit SMD habe ich nicht, werde aber keine Chips mit Pinabstand < 
1 mm verarbeiten. Dafür bin ich nicht ausgerüstet.
Nun zu der Projektbeschreibung.
Das Projekt nutze ich für mein Hobby. (Modelleisenbahn)
Habe ein Programm in C++ geschrieben, das die Anlage steuert und 
überwacht.
Die Anbindung an die Hardware erfolgt über die parallele Schnittstelle.
Die Hardware besteht aus einem großem 19" Rahmen mit unterschiedlichen 
Einschubkarten.
Zu der Karte mit den PIC. PC überträgt Daten an Karte/PIC mit 
unterschiedlichen Parameter. Der PIC soll die Berechnung des PWM Signal 
berechnen. Das PWM Signal steuert über einen Opto eine kurzschlußfeste 
FET-Enstufe an. Bei Kurzschluß muß der PIC das Signal unterbinden und 
über den Bus es dem PC mitteilen.

bis bald Siegfried

von Siegfried S. (dieleena)


Lesenswert?

Hallo,

// Taktfrequenz 4MHz

#include <C:\cc5\16F84.h>      // Prozessor-Typ definieren
#pragma config |= 0b.1111.1111.0010    // Konfigurationswort

void pause(void)        // Unterprogramm zum Abwarten einer Millisekunde
{
OPTION = 2;        // Vorteiler auf 8 einstellen
TMR0 = 131;        // 125 * 8 = 1000 (= 1 ms)
while (TMR0);        // Schleife, solange bis TMR0=0 wird
}

habe mir dieses Beispiel angesehen.
Frage: wa bedeutet " OPTION = 2;"

bis bald Siegfried

von Dieter Werner (Gast)


Lesenswert?

> was bedeutet " OPTION = 2;"

Das OPTION-Register wird mit dem Wert 2 geladen.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
Beispiel sagt mir aber "Vorteiler auf 8 einstellen"
bis bald Siegfried

von Ralf M. (Firma: Titel) (ego)


Lesenswert?

Scha dir mal die Seite 9 im Datenblatt an dann wirst du sehen das eine 
Dezimale 2 im Option Register nur das bit 2 setzt und damit der 
Vorteiler auf 1:8 gesetzt wird.

MFG
Ralf

von Dieter Werner (Gast)


Lesenswert?

Siehe Datenblatt PIC16F84 page 9, Abschnitt 2.3.2
Erklärung des OPTION-Registers

Die Bits 0, 1 und 2 sind der (Vor-)Teilerfaktor für Timer0 bzw. 
Watchdog.

Ein Wert von 2 (binär 010) heisst Teiler durch 8 für den Timer oder 
Teiler durch 4 für den Watchdog.

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
bin gerne bereit mit den "PIC18F" zu arbeiten, habe aber weder bei R, C, 
K, einen entsprechenden Typ zum "PIC16F877" gefunden.
Welcher unterschied ist zwischen "PIC18F877" und "PIC18F877A".
wieviele Bit werden in der " SPI Mode " übertragen? Stellt man die 
Anzahl z.B. 32 Bit ein oder werden diese immer in einem Paket von 8 Bit 
übertragen.
Habe ein kleines Demo (Schaltplan) dazu gesehen, in diesem 32 Bit 
gelesen und geschrieben werden.
bis bald Siegfried

von Schoasch (Gast)


Lesenswert?

Hi

Probiers doch mal mit dem PIC18F452(Reichelt: PIC 18F452-I/P).WEnn du 
Schüler oder Student bist, kannst du dir auch direkt von Microchip mal 
ein paar Samples zum kennenlernen zukommen lassen.

Die A-Version ist eine neue Überarbeitete Version des µC, wo dann 
diverse andere Features dazu gekommen sind.


SPI überträgt beim PIC immer nur 8 Bit in einem Stück. Mehr kann er auch 
nicht Schicken, da sein Shiftregister halt mal nicht grösser als 8 bit 
ist.

mfg Schoasch

von Siegfried S. (dieleena)


Lesenswert?

hallo,
schade, die Uhr kann man nicht zurückdrehen. Würde gerne bei Microchip 
dan das Angebot warnehmen.
zum PIC18F452, I/O, Code und Ram sind ok. Aber kein EEPROM
SPI ist dan auch ok. Muß dann die Byts immer in Pakete veschicken.
bis bald Siegfried

von Dieter Werner (Gast)


Angehängte Dateien:

Lesenswert?

> zum PIC18F452, I/O, Code und Ram sind ok. Aber kein EEPROM

Dann muss ich Tomaten auf den Augen haben ;-)

von Siegfried S. (dieleena)


Lesenswert?

Hallo,
nein. Ich sollte auch Datenblatt durchsehen. Ist auch schon spät.

Device
FLASH (bytes) Single Word Instructions RAM(bytes) Data EEPROM(bytes)
PIC18F242 16K 8192 768 256
PIC18F252 32K 16384 1536 256
PIC18F442 16K 8192 768 256
PIC18F452 32K 16384 1536 256

Hier die Reichelt Info
;
Produktbeschreibung:
Gehäuse: DIP-40
Programm-Memory: 16394x16
Ram-Bytes: 1536
max.: 40MHz
I/O-Pins: 34
Hersteller:MICROCHIP
Artikelnummer des Herstellers: PIC18F452-I/P
;
Produktbeschreibung:
Gehäuse: PLCC-44
Programm-Memory: 16394x16
Ram-Bytes: 1536
max. MHz: 40MHz
I/O-Pins: 34I/O
Hersteller:MICROCHIP
Artikelnummer des Herstellers: PIC18F452-I/L
;

bis bald Siegfried

von Vukic Dusan (Gast)


Lesenswert?

Hallo freunde,
ich habe zufälig ins forum geraten. Aber weil sehr gut känne PIC 
microprpcesoren möchte ich emfelen wunderbare Bücher und entviklungs 
hardware welche einmalig ist und mit hilfe von sehr erfarenen tim.
Am schenste dabei ist das man Buch für einsteiger umsonst am internet 
ist.
Auserdem Basic Paskal und C sind frei zu laden eizige begrencug ist der 
grese des programs. Preise für foll werion sind auch manirlich.
sehen Sie www.mikroe.com/de/

Gruss Vukic

von bogdan (Gast)


Lesenswert?

bitte hilfe!!

was konnen sie mir uber PIC18F877A sagen.

von Severino R. (severino)


Lesenswert?

bogdan wrote:
> bitte hilfe!!
>
> was konnen sie mir uber PIC18F877A sagen.

Dass es ein solches Ding meines Wissens gar (noch) nicht gibt!

Was wollen Sie den wissen?

von bogdan (Gast)


Lesenswert?

ich habe ein ubung fur die schule und ich muss Suche das Datenblatt des 
PIC18F877A. wo konnte ich es suchen

von Dieter W. (dds5)


Lesenswert?

Es gibt keinen PIC18F877A, wenn es 877A sein soll dann ist es ein 
PIC16F.

Datasheet gibt es hier
http://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf

von bogdan (Gast)


Lesenswert?

danke

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.