www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Urlaubswächter mit C


Autor: Maurice Pros (prose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
tach...

habe gerade maturavorbereitung und habe ein kleines problem bei nem 
beispiel...
und zwar ist ein "urlaubswächter" mit mplab zu programmieren, welcher 
eben geräte zu bestimmten zeiten ein ausschaltet...

die kommunikation soll mit einer präambel beginnen, danach soll die 6bit 
adresse des entsprechenden gerätes kommen und danach noch den parameter 
"ein" oder "aus"...
habe etwas derartiges noch nie gemacht, und stehe ein wenig an, habe 
auch leider im netz und der ccsc-manuel nichts gefunden...

hat jemand ne ahnung oder nen link?
mfG Prose

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Maurice Pros wrote:
> tach...
>
> habe gerade maturavorbereitung und habe ein kleines problem bei nem
> beispiel...
> und zwar ist ein "urlaubswächter" mit mplab zu programmieren, welcher
> eben geräte zu bestimmten zeiten ein ausschaltet...

Also im Prinzip eine Uhr mit 'Weckfunktion', die zu einer
bestimmten Zeit etwas ein bzw. aus schaltet. Ob das jetzt der
Summer ist oder das Licht ist ja in erster Näherung mal egal.

> die kommunikation

Welche Kommunikation?
Über RS232, USB, I2C, TWI, EIB, was völlig eigenes, ...

> soll mit einer präambel beginnen,

also ein einleitender 'Text', der auch einfach nur ein bestimmtes
abgesprochenes Byte sein kann

> danach soll die 6bit
> adresse des entsprechenden gerätes kommen

verpackt in ein 8bit Byte, das als nächstes ausgegeben wird.

> und danach noch den parameter
> "ein" oder "aus"...

zb. 0x00 für aus und 0x01 für ein

> habe etwas derartiges noch nie gemacht, und stehe ein wenig an, habe
> auch leider im netz und der ccsc-manuel nichts gefunden...

Na ja. Wie hast du dir das vorgestellt? Dass es in C eine
Funktion gibt, die genau deine gewünschte Funktionalität
abdeckt :-)

Im Ernst, bei welchem Teil hast du konkret Schwierigkeiten
* kriegst du eine Uhr alleine hin
* Weist du nicht welche Schnittstelle du nehmen kannst?
* Wenn du die Schnittstelle kennst, kannst du die ansprechen
  um damit Bytes zu übertragen.
* Von welchem Prozessor reden wir eigentlich?

Autor: Thomas Müller (thomas1123) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das wäre die einfachste möglichkeit etwas ein und auszuschalten
#include pic.h
TRISA = 1;
while(1)
{
RA1 = 1;
RA1 = 0;
}

spass bei seite hier haste erstmal nen denkanstoss für ne uhr lässt das 
dann von nem interrupt jede sekunde aufrufen

void uhr1 ()
{
  _sekunde1++;            // zähle Sekunden hoch...
  if (_sekunde1 == 60)        // ... bis 60 ...
  {
    _sekunde1 = 0;          // ... setze Sekunden auf 0 ...
    _minute1++;             //... zähle Minute hoch ...
    if (_minute1 == 60)       // ... bis 60 ...
    {
      _minute1 = 0;        // ... setze Minuten auf 0 ...
      _stunde1++;          // ... zählr Stunde hoch.
    }
  }
}

Autor: Maurice Pros (prose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
>
> Welche Kommunikation?
> Über RS232, USB, I2C, TWI, EIB, was völlig eigenes, ...
>
RS232
>
> also ein einleitender 'Text', der auch einfach nur ein bestimmtes
> abgesprochenes Byte sein kann
> verpackt in ein 8bit Byte, das als nächstes ausgegeben wird.
>
jap genau, habe ich bereits programmiert...
  pre = 0b00110011;  // Präambel
  adress = 0b000010;  // Gerät 3 ausgewählt
  value = 0b01;    // Gerät eingeschalten
  
  temp0 = (adress << 2) | value;
  temp1 = (temp0 << 8) | pre;

>
>
> zb. 0x00 für aus und 0x01 für ein
>
den parameter ein/aus hab ich in ein zweites byte zusammen mit der 
adresse gepackt...
>
>
> Na ja. Wie hast du dir das vorgestellt? Dass es in C eine
> Funktion gibt, die genau deine gewünschte Funktionalität
> abdeckt :-)
>
schön wärs gewesen ;)
>
> Im Ernst, bei welchem Teil hast du konkret Schwierigkeiten
> * kriegst du eine Uhr alleine hin
> * Weist du nicht welche Schnittstelle du nehmen kannst?
> * Wenn du die Schnittstelle kennst, kannst du die ansprechen
>   um damit Bytes zu übertragen.
> * Von welchem Prozessor reden wir eigentlich?
>
mit timer habe ich noch nie gearbeitet, muss mich mal ransetzten und 
kcuken wie's geht... prozessor ist übrigens 18f452...

ach ja... uhrzeit wird über dcf77("funkuhr") beim start eingelesen, ist 
aber momentan eher nachrangig....

mfg

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.