Forum: Mikrocontroller und Digitale Elektronik Urlaubswächter mit C


von Maurice P. (prose)


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

von Karl H. (kbuchegg)


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?

von Thomas M. (thomas1123) Benutzerseite


Lesenswert?

das wäre die einfachste möglichkeit etwas ein und auszuschalten
1
#include pic.h
2
TRISA = 1;
3
while(1)
4
{
5
RA1 = 1;
6
RA1 = 0;
7
}

spass bei seite hier haste erstmal nen denkanstoss für ne uhr lässt das 
dann von nem interrupt jede sekunde aufrufen
1
void uhr1 ()
2
{
3
  _sekunde1++;            // zähle Sekunden hoch...
4
  if (_sekunde1 == 60)        // ... bis 60 ...
5
  {
6
    _sekunde1 = 0;          // ... setze Sekunden auf 0 ...
7
    _minute1++;             //... zähle Minute hoch ...
8
    if (_minute1 == 60)       // ... bis 60 ...
9
    {
10
      _minute1 = 0;        // ... setze Minuten auf 0 ...
11
      _stunde1++;          // ... zählr Stunde hoch.
12
    }
13
  }
14
}

von Maurice P. (prose)


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...
1
  pre = 0b00110011;  // Präambel
2
  adress = 0b000010;  // Gerät 3 ausgewählt
3
  value = 0b01;    // Gerät eingeschalten
4
  
5
  temp0 = (adress << 2) | value;
6
  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

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.