Forum: Mikrocontroller und Digitale Elektronik Zeieinbindung?


von Jan H. (janiiix3)


Lesenswert?

Hallo Leute,

Ich hätte gerne eine An/Aus Zeit von 10 ms

$regfile = "m8def.dat" 
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output

Do

  Portb.2 = 1
  Wait 0.001
  PORTB = 0
  wait 1
loop






End



Wie muss ich meinen Code umschreiben?

von Lehrmann M. (ubimbo)


Lesenswert?

Jan H. schrieb:
> Wait 0.001

Schau mal bei der Hilfe zu der Library Wait nach.

Ich nehme an, dass das die Zeit in Sekunden ist.

Dann müsste es heißen

Wait 0.010 'Zeit in Sekunden -> 0.010 = 10ms

von Weingut P. (weinbauer)


Lesenswert?

waitms 10

:o)

Bascom hat da ne extra Routine für.

Wie genau die wiederum ist, ist aber ne andere Geschichte

von Jan H. (janiiix3)


Lesenswert?

Ja gut das habe ich hinbekommen,


$regfile = "m8def.dat" 
'initialisierung (Atmega8)
$crystal = 3690000                                          'Frequenz

Config Portb = Output
Config Portc = Output 
'Konfiguriert die Ports als Ausgänge


Do

  Portb.0 = 1
  Waitms 10
  Portb.0 = 0
  Waitms 10

  Portb.1 = 1
  Waitms 10
  Portb.1 = 0
  Waitms 10

  Portb.2 = 1
  Waitms 10
  Portb.2 = 0
  Waitms 10

  Portb.3 = 1
  Waitms 10
  Portb.3 = 0
  Waitms 10

  Portb.4 = 1
  Waitms 10
  Portb.4 = 0
  Waitms 10

   Portb.5 = 1
  Waitms 10
  Portb.5 = 0
  Waitms 10                                                 'Knight 
Rider bis Pin5



  Portc.0 = 1
  Waitms 10
  Portc.0 = 0
  Waitms 10


  Portc.1 = 1
  Waitms 10
  Portc.1 = 0
  Waitms 10


  Portc.2 = 1
  Waitms 10
  Portc.2 = 0
  Waitms 10


  Portc.3 = 1
  Waitms 10
  Portc.3 = 0
  Waitms 10

















  Loop 
'Endlosschleife


End                                                         'Ende des 
Programmes



das ist jetzt mein Programm
Jetzt habe ich alle Ports aufeinmal geschaltet, ich möchte aber eins 
nach dem anderen Auf High setzen?

von Karl H. (kbuchegg)


Lesenswert?

Jan H. schrieb:

> Jetzt habe ich alle Ports aufeinmal geschaltet,

Nö.

> ich möchte aber eins
> nach dem anderen Auf High setzen?

Hä?

Tust du doch!
Du schaltest einen nach dem anderen ein und dann wieder aus.

Wenn du was anderes willst, dann musst du das in deiner 
Programmiersprache eben so formulieren. Allerdings wäre es gut, wenn du 
erst mal in deiner Muttersprache das Gewünschte sauber und eindeutig 
formulieren könntest. Dann tut man sich erfahrungsgemäss leichter, das 
in eine Programmiersprache zu übersetzen.

Also überleg dir: In welcher Reihenfolge soll was passieren.

von Karl H. (kbuchegg)


Lesenswert?

:-)

Nochmal die Aufforderung: Vergiss den Verwischeffekt. Den kriegst du so 
nicht hin.
Bis du auf einem Wissenstand bist, einen derartigen Effekt erreichen zu 
können, fliesst noch viel Wasser die Donau hinab.

Sich jetzt an diesem Effekt festzukrallen ist für deine Lernphase 
absolut kontraproduktiv.

von frank (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Tust du doch!
> Du schaltest einen nach dem anderen ein und dann wieder aus.

Aber ob auch die LEDs an den Ausgängen so tun wissen wir nicht. Die 
könnten je nach Beschaltung genau das Gegenteil veranstalten ;-)
frank

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.