PIC Programm

Gast #359492
Lesenswert?

Hallo,

ich muss für einen Pic16f84A folgendes Programm schreiben leider habe
ich davon 0 ahnung.

Mein Progamm soll folgenderweise Funktionieren.

Durch ein High Signal an dem Pin "RB1" soll das Programm des Pic
starten, sobald das High signal weg ist soll das Programm abbrechen.
Sobald das Programm aktiv ist soll der Ausgang "RB2" High sein.
Ich habe an PIN "RA1" ein 2 HZ Signal.
Jedesmal wenn ich ein High an "RA1" habe soll ein Interner Zähler um
1 hoch zählen.
Sobald der Zählerstand den wert 7200 (nach 1 Stunde) erreicht hat, soll
der Ausgang "RB2" Low werden und der Ausgang "RB3" High werden.
Sobald der Zählerstand den wert 14400 (nach 2 Stunde) erreicht hat,
soll der Ausgang "RB3" Low werden und der Ausgang "RB4" High
werden.
Sobald der Zählerstand den wert 21600 (nach 3 Stunde) erreicht hat,
soll der Ausgang "RB4" Low werden und der Ausgang "RB5" High
werden.
Sobald der Zählerstand den wert 28800 (nach 4 Stunde) erreicht hat,
soll der Ausgang "RB5" Low werden und der Ausgang "RB6" High
werden.
Der Ausgang "RB6" Soll dann auch dauerhaft High bleiben solange bis
das Programm durch ein Low an "RB1" resettet wird.

ich hoffe ihr könnt mir helfen, ich hab echt null plan wie ich das
lösen sollte.

mfg

jörg..
Gast #359493
Lesenswert?

Hi

Willst du das in C oder in ASM programmieren? Ansich sollte es kein
Problem sein.

Weder ASM noch C.

Wo liegt denn das Problem?

Ich würds vl mal so in der Art probieren
if(RB1==1)
{
RB2=1;
if(RA==1 & flag==0)
{
  zaehlwert++;
  flag=1;
}
if(RA==0)
  flag=0;

if(zaehlwert<7200)
 {
 RB2=0;
 RB3=1;
 }
if(zaehlwert=14400)
 {
 RB2=1;
 RB3=0;
 }
if(zaehlwert=21600)
 {
 RB2=0;
 RB3=1;
 }
if(RB1==0)
 {
  return; oder break; /*je nach dem ob du das ganze als Funktion machst
oder  direkt im main*/
 }
}
So... Kannst du dir das ungefähr vorstellen? Das ganze hab ich mal nur
so aus dem Kopf probiert... also ich hab die funktionsfähigkeit nicht
überprüft.. aber vl hilfts ja.
Gast #359498
Lesenswert?

ich denke, es wird bei jedem mal situationen geben, in denen man sich
nicht so leicht helfen kann da man etwas noch nie gemacht hat. da freut
man sich doch gerne wenn jemand anderes einen hilft.

ich hab halt einfach noch nie ein programmm für einen pic geschrieben.
Gast #359499
Lesenswert?

Okay, dann rück mal raus mit der Sprache.

- Warum musst du das programm schreiben? (Schule?)
- Warum hast du keine Ahnung?
- Was hast du bisher versucht?

Erst wenn du hier schreibst, was du für einen Ansatz hast, bzw. wo
genau deine Schwierigkeiten stecken, wird die geholfen werden. Wenn du
tatsächlich (von irgendjemanden gewollt) keine Ahnung haben solltest,
gehört vielleicht das Beschaffen von Ahnung zur Aufgabe. Das du für den
(veralteten) 16F84A programmieren sollst, legt nun mal den Verdacht auf
"Hausaufgaben" nahe.
Gast #359500
Lesenswert?

das programm ist für mein projekt in der arbeit.
da ich auf www.sprut.de nur programme gefunden haben die sich auf den
takt beziehen der durch ein quarz an OSC1 und OSC2 genereriert wird,
weis ich nicht wie ich das handhaben soll wenn ich das signal auf einen
eingang bekomme z.b. RA1 und ich soll das signal welches am RA1 ist für
den timer verwenden verstehe zwar auch nicht genau warum da es mir
einfach scheint ein quarz an osc1 und osc2 zu hängen und das signal von
dort so oft zu teilen... nun hab ich die platine aba schon so gemacht da
mir das mein ausbilder vorgeschlagen hat.

Wie gesagt hab ich noch nie einen Pic programmiert.
#359501
Lesenswert?

Sehe ich auch so.

Es ist Blödsinn, extern 2Hz einzuspeisen, statt gleich den Takt des
angeschlossenen Quarzes zu nehmen.

Aber da mußt Du Deinen Ausbilder fragen, was und überhaupt ob er sich
dabei was gedacht hat. Scheint so, als hätte er einen ähnlichen
Kenntnisstand wie Du.



"Wie gesagt hab ich noch nie einen Pic programmiert."

Ich auch nicht.

Bezüglich Programmierhilfe, würdest Du hier mehr Erfolg haben, wenn Du
nen AVR genommen hättest.
Besonders, da es für den AVR einen guten kostenlosen C-Compiler gibt,
findet man auch sehr viele gute C-Beispiele.

Vielleicht gibts ja bei Sprut auch einige PIC-Foren-Links.


Peter
#359505
Lesenswert?

@Eclipse: Die meisten hier würden dein Problem lösen können, wollen aber
nicht.

Haus/Übungsaufgaben haben schliesslich den Zweck, dass DU was dabei
lernst, nicht das WIR als Fingerübung ein paar Codezeilen
runtertippen.

Wenn du keinen Assembler lernen magst, schreib das doch einfach in C,
jag es durch einen Compiler und gib den genrierten ASM-Code ab.

Und wenn es wirklich ein Notfall ist (morgen 8:00 Abgabe, sonst
Arbeitslos), dann findet sich hier sicher auch jemand der dir hilft.

/Ernst
Gast #359506
Lesenswert?

Es ist immer wieder erfrischend, wenn hier die Leute, die nach Hilfe
fragen und keiner postet eine fertige Lösung, dann festellen dass
keiner eine Ahnung hat - aber sie selbst offenbar genug um das
beurteilen zu können.

Wenn jemand Defizite hat und diese hier offenlegt findet sich fast
immer eine Hilfe.
Ein Lehrgang für "Null-Ahnung-Leute" ist aber einfach zu umfangreich
für ein Forum.
Eine Aussicht auf Hilfe ist immer gegeben, ein Anspruch dagegen
bestimmt nicht.
Gast #359507
Lesenswert?

habe mittlerweile schon in einem anderen forum einen antwort bekommen,
nur kurz es sind keine hausaufgaben, wer lesen kann is klar im vorteil.
um beurteilen zu können das hier keiner ahnung hat muss man nicht
besonders intelligent sein, das sieht man ja an den antworten, die
keineswegs das thema treffen.

mfg

PS: forum in Chat4free umbenennen
Gast #359510
Lesenswert?

Hi

Ich möchte dir das Forum von Fernando Heitor ans herz legen. dort sind
zwar nicht so viele Leute, aber dafür auch nicht so viele unwissenden
Leute. Ausserdem kennen sich die Leute hier wenn eher mit AVRs aus.

Nun der langen rede kurzer sinn. Schau mal auf www.fernando-heitor.de.

Ich fange gerade selbst erst mit ASM an, daher kann ich dir leider
nicht genau ein Programm zimmern. Aber was ich dir Empfehlen kann ist,
dass du dir so eine Art pseudocode erstellst. Also wo du festhältst,
was das Programm machen muss. Dabei überlege gleich ob du nicht noch
irgendwelche Hilfsvariablen brauchst und welche Zustände anstehen
können und wie sie einfluss haben.. Also so wie bei meinem Code vorher.


Achja... der PIC16F84A ist zwar nicht gerade der jüngste.. aber sehr
weit verbreitet... und auch eigentlich gar nicht schlecht.

Ah.. und fange einmal mit der Initialisierung an.. also alle Ports
richtig setzen.. also ob eingang oder Ausgang und deren funktion (ADC
Comperator usw) so einstellen, dass du sie als normale IOs verwenden
kannst.
Hast du dir auch schon das Datenblatt angesehen?
Kannst du etwas ASM oder musst du erst komplett neu Einsteigen?
Schau dir diese Seite genau durch
http://www.sprut.de/electronic/pic/assemble/befehle.html .Die ist sehr
sehr Hilfreich. Da werden alle Befehle sehr gut beschrieben.

so viel fürs erste. Ich hoffe wir sehen uns im anderen Forum.
mfg schoasch
#359512
Lesenswert?

"... doch hier sind anscheinend nur leute die keine ahnung haben."


Jo, dat stimmt.

Hier sind wirklich ne Menge Leute, die von PIC keine Ahnung haben
(wollen) und schon jahrelang perfekt Flash-MCs programmieren.

Auch wenn hier nicht direkt AVR drüber steht, haben sich zufällig viele
AVR-ler zusammengefunden.

Bei AVRfreaks oder 8052.com ist das eindeutiger, da wirste als PIC-er
gnadenlos abgekanzelt.


Deshalb ja mein Tip, es in einem PIC-Forum zu versuchen.


Peter

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