www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Umdrehung zählen und Aktion durchführen


Autor: Ralph Müller (revolt3c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi @ all,

ich bin in dem gebiet noch ziemlich neu und habe schon die ersten 
tutorials gemacht. besitze das myavrmultiprog usb board mit dem atmega8 
von conrad.

ich möchte an meinem motorrad über einen reedkontakt einen controller 
ansteuern. sprich je radumdrehung = 1 signal. nach 50000x signalen 
sollte der controller einen ausgang für ca 5sek ansteuern. danach wieder 
von vorne.
hab da was mit interrupts gelesen komme aber noch nicht ganz weiter.

könnt ihr mir ein gutes tutorial zeigen oder einen tipp geben wie ich 
das auch als anfänger schnellstmöglich realisieren könnte?

gruss ralph

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ralph,

wenn das mal nichts mit einer Kettenschmierung zu tun hat.....

Als Link könnte Dir: 
http://www.mikrocontroller.net/articles/Fahrradcomputer helfen.

Evtl. ist für ein Moped ein Hall-Sensor besser geeignet, als ein 
Reed-Schalter.

Worüber Du Dir Gedanken machen musst, ist der störsichere Aufbau:

- Stromversorgung
- Sensoreingangsbeschaltung
- Ausgangsstufe

Gruss Otto

Autor: Albert D. (albert32)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Ralph, bei Kettenschmierung siehe...

http://www.mccoi-forum.de/viewtopic.php?t=294&star...

lg

albert

Autor: Ralph Müller (revolt3c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Genau es handelt sich hierbei um ne Kettenschmierung, werde mich mal 
durch die Links arbeiten.

Danke

Gruss

Ralph

Autor: D'n'D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal den PCF 8583 an ... RTC bzw Counter ...... hält mit einer 
CR2032 und 2 BAT43 etwa 14 Monate!

Die (Re-) aktion auf 50k dann von MCU ausführen lassen.

Autor: Gast4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frueher gabs fuer sowas einen simplen Wartungsplan.
eine Umdrehung ~ 2m * 50000 = 100 km
Immer wenn hinten am Kilometerzaehler eine 00 erschienen ist, ist das 
faellig.

Gast4

Autor: derTurmvon (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das war vor PISA.

Autor: Wolli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ralph Müller (revolt3c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja den kenn ich schon, daher ja die Idee es selber zu machen :P

Was haltet ihr davon:
;Reset and Interrupt vector             ;VNr.  Beschreibung
  rjmp  main  ;1   POWER ON RESET
  rjmp  takt  ;2   Int0-Interrupt (ext. Impuls)
  reti    ;3   Int1-Interrupt
  reti    ;4   TC2 Compare Match
  reti    ;5   TC2 Overflow
  reti    ;6   TC1 Capture
  reti    ;7   TC1 Compare Match A
  reti    ;8   TC1 Compare Match B
  reti    ;9   TC1 Overflow
  reti    ;10  TC0 Overflow
  reti    ;11  SPI, STC Serial Transfer Complete
  reti    ;12  UART Rx Complete
  reti    ;13  UART Data Register Empty
  reti    ;14  UART Tx Complete
  reti    ;15  ADC Conversion Complete
  reti    ;16  EEPROM Ready
  reti    ;17  Analog Comparator
  reti    ;18  TWI (I²C) Serial Interface
  reti    ;19  Store Program Memory Ready
;------------------------------------------------------------------------
;Start, Power ON, Reset
main:  ldi  r16,lo8(RAMEND)
  out  SPL,r16
  ldi  r16,hi8(RAMEND)
  out  SPH,r16
  ldi  r16,0b00000011
  in  r17,MCUCR
  or  r17,r16
  out  MCUCR,r17  ;ext.Interrupt mit Steigender Flanke auslösen
  ldi  r16,0b01000000
  out  GICR,r16
  ldi  r17,0  ;innerer Zähler (bis 250)
  ldi  r18,0  ;äußerer Zähler (bis 200)
  sei
;------------------------------------------------------------------------
mainloop:  wdr    ;endlosschleife

  rjmp  mainloop
;------------------------------------------------------------------------
takt:  ldi  r16,0b11111111
  dec  r17
  cp  r16,r17
  breq  outloop  ;wenn innerer Zähler = 255  springen
  reti


outloop:  ldi  r17,0
  ldi  r16,0b11001000
  dec  r18
  cp  r18,r16  ;wenn äußerer Zähler = 200 springen
  breq  aktion
  reti

aktion:  "Fehlt noch" 

R17 zählt bis 250 und springt wieder auf 0. R18 inkrementiert immer wenn 
R17 voll ist. Wenn R18 bei 200 liegt soll die Aktion durchgeführt 
werden.
Sprich 250x200 = 50000 Signale vom Reedschalter, entspricht ca. 50km.

Könnte das so klappen?

Gruss Ralph

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.