Hallihallo RN Community,
ich versuche mir derzeit einen dzm und tacho für meine cross mit einem mega8 zu bauen. als hardware habe ich das myavr board mit lpt anschluss.
zur ausgabe habe ich ein 16*2 display.
ich habe in Bascom einen code geschrieben, vermute da aber noch nen haufen bugs, wo ich aber einfach nicht weiter weiß, da ich erst durch den elektrotechnik leistungskurs in der schule zur elektronik kam. die ganze mikrocontrollerei habe ich mir soweit möglich dann selbst versucht beizubringen.
ich hatte mir gedacht durch einen timer in 500ms die anzahl der impulse zu zählen und dann auszugeben.Code:$regfile "m8def.dat" $crystal = 3686400 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.0 , Rs = Portb.1 Config Lcdpin = 16 * 2 Config Portb = Output Dim Umin As Integer 'Drehzahl Dim Speed As Integer 'Geschwindigkeit Speed = 113 Dim Numa As Integer 'zahl1 für berechnung Dim Numb As Integer 'zahl2 für berechnung Config Int0 = Low Level 'int0 Enable Int0 On Int0 Isrcounter Config Timer1 = Timer , Prescale = 64 'timer1 Enable Timer1 On Timer1 Isrtimer Enable Interrupts Timer1 = 36735 Do 'Waitms 100 'Display 'Cls Locate 1 , 1 Lcd "Drehzahl:" Locate 1 , 11 Lcd Umin Locate 2 , 1 Lcd "Speed: " Locate 2 , 8 Lcd Speed Locate 2 , 11 Lcd "Km/h" Loop End Isrcounter: Incr Numa 'Zähler durch Interrupt Return Isrtimer: 'Timer, alle 500ms Überlauf Cls Timer1 = 36735 Numb = Numa * 2 Umin = Numb * 60 Numa = 0 Numb = 0 Return
das display funktioniert und zeigt mir auch was an. aber ich weiß noch nicht so recht wie ich alles beschalten mus.
Da ich das signal gern induktiv, um das zündkabel, abnehmen möchte, tun sich mir da noch einige rätsel auf aber das wird schon noch werden. mir wäre jetzt erst einmal die software wichtig, da wenn ich dann int0 mit der masse verbinde und wieder davon weg gehe, wo ja ne fallende flanke entsteht, zeigt mir das display auch etwas an aber halt riesige zahlen und zum teil auch negative.
nach recht kurzer zeit scheint sich der atmel dann aufzuhängen weil das display dann nur noch wirres, schnell wechselndes zeug anzeigt.
meine vermutung es liegt an den langen isr, aber ich weiß nicht wie ich das besser machen soll.
es wäre toll wenn mir hier geholfen werden könnte, ich bin halt einfach noch ein verdammt blutiger anfänger.
danke im vorraus







Zitieren

Lesezeichen