Hallo zusammen ich habe da ein Problemm mit einem Attiny45. An Port PB2 nehme ich mit dem INTO Interrupt einen externen Puls auf und Zähle ihn hoch. Nach einer abgelaufenen Zeit erzeugt der on Timer1 isr einen Überlauf und nach Durchlauf einer Schleife, da nur ein 8Bit Timer zur Verfügung steht und ich eine Zeit von 1 Sek brauche, erfolgt die Übergabe des Zählwertes an eine Variable in einer Subroutiine und setzt den Zählwert wieder auf Null. Die eigentliche Berchnung erfolgt im Hauptprogramm doch da kommt der Variablenwert nie an. Kann mir einer eine andere Lösung aufzeigen ???? Gerne würde ich den kleinen Tiny beibehalten. Sofern es an der Schleife in der Interruptroutine liegt werde ich wohl einen größeren Tiny mit 16 Bit Timer nehmen müssen !!!! Danke für Eure Mühe
Gibt's bei Bascom auch sowas à la volatile?
Hallo was ist das ??? da habe ich keine Ahnung???, bin Anfänger auf Bascom. kannst du das kurz erklären ???!!! Danke
Nach kurzen Überfliegen des Listings fälltmir auf das aus der IR auf eine Printausgabe gesprungen wird. Das ist aber nicht gut da Sprünhe aus der IR vermieden werden sollten und andererseits die Print Ausgabe verhältnissmässig viel Zeit beansprucht. Eine Variable als solche wird ja gar nicht übergeben. Setze doch einfach eine BitVariable die dann im Hauptprogramm wenn sie gesetzt ist in das Unterprogramm springt. So kommmt der Zeitablauf der IR nicht aus dem Tritt.
Hallo, selbst wenn ich die Print Ausgabe komplett herausnehme gehts nicht. Im Listung ist auch die INTO Isr versehntlich auskommentiert. Die Variable um die es geht ist die Zaehlerirq0 die wird in "On Int0 Irq0" hochgezählt und dann in der "On Timer1 Timer1_isr" mit einer Schleife zur Verlängerung der Zeit auf eine Sek. ausgegeben. Der Sprung in die Subroutine Aktu dient rein der Übergabe an die Variable "Bydrehfrequenz". die Variable Bydrehfrequenz soll mit in den Haupprogrammteil "Do - loop" übernommen werden und dort als Teil einer Berechnung dienen. Doch ist die Variable Bydrehfrequenz im Hauptprogrammteil wieder leer, also Null. Die Variable habe ich mit DIM Bydrehfrequenz as Byte deklariert, es sind nur Frequenzen bis 150 Hz zuerwarten. Mit der DIM Deklarierung sollte die Variable doch überall im Programm verfügbar sein.??????? Zu meiner Schande......sehe ich gerade das ich ein Testprog angehängt habe in der ein Teil auskommentiert ist aber für meine Beschreibung/Berechnung gebraucht würde. Vieleicht steige ich noch dahinter ich werde es mal mit einen Tiny26 testen der hat einen 16 Bit Timer und sobrauche ich zumindest keine Schleife in der "On Timer1 Timer1_isr. Hat noch einer ein guten Tipp für einen Anfänger
Hallo zusammen, auch nach weiteren Tests gehts auch mit dem Tiny26 trotz 16-Bit Timer nicht. Nach Hochzählen des Int0 mit incr in der Variable Zaehlerirq erfolgt der Timerüberlauf nach 1 Sek und der Wert von Zaehlerirq wird in eine 2te Variable geschrieben. Der Inhalt der Variablen sowohl Zaehlerirq als auch die 2te variable wird aber nicht im Hauptptrogramm übernommen. Ich habe schonmal was von Overlay in bascom gelesen und frage hier mal die Profis ob die mehr wissen. Hilfe !!!!!!!!!!!1
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.