Suchergebnisse

Suchergebnisse 1-20 von insgesamt 79.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

Hinweis kann nach Kenntnisnahme deaktiviert werden!

  • Rs 232 Empfang ohne HW-Usart mit Int

    Guenther - - Codeschnipsel

    Beitrag

    Ist schon klar, dass der M88 das auch in HW könnte. Ich will es später in einen Tiny13A packen. Wenn ich den Text "test<LF>" eingebe, kommen kryptische Zeichen raus. Laut HD44780 Zeichentabelle die Hex Codes B4, A5, B3, B4. Ich habe dann mal einen Pin getoggelt direkt bevor der Eingangspin gelesen wird. Das sieht dann so aus: bascomforum.de/index.php?attac…4f5f438f60ce1973d9b33d3ea Deutlich sieht man, dass der 8. Toggle nach dem 8.Bit kommt, also dort, wo das Stoipp-Bit ist. Und wenn man die Bit…

  • Rs 232 Empfang ohne HW-Usart mit Int

    Guenther - - Codeschnipsel

    Beitrag

    Hallo Pluto25, vielen Dank für das Einstellen dieses Codes. Allerdings versuche ich jetzt schon seit einiger Zeit, eine sinnvolle Anzeige zu bekommen. Funktioniert der Code bei dir so, wie er ist? Da ich keinen Tiny84 zur Hand habe, wollte ich einen M88p verwenden. Eigentlich muss ich also nur einige Stellen ändern, die Controller spezifisch sind. In der LCD Anzeige steht nach dem Senden einer 1<LF> auch Empfangen:2. In der zweiten Zeile wird das "Ha" von Hallo wird durch zwei Leerzeichen ersetz…

  • ATMega1284 beide UART nutzen

    Guenther - - Hauptforum BASCOM-AVR

    Beitrag

    Hallo cable, alles außer Com1 (RX0 und TX0) musst du erst mit Open vereinbaren. Open "com2:" For Binary As #1 und dann entsprechend bei Input Input #1 , Data_in Noecho

  • Hallo Mitch, ohne das jetzt genauer überprüft zu haben, würde ich sagen, dass der Timer im Input Capture Mode laufen muss. Also sowas: Config Timer1 = Timer , Prescale = 1 , Capture Edge = Rising , Noise Cancel = 1 Ob tatsächlich PWM gleichzeitig geht, weiß ich jetzt nicht, könnte aber sein.

  • Klar, deswegen heißt die Option auch "Clear Timer" (on Compare Match) weil man damit Fast-PWM einschaltet. Du kannst das natürlich machen, aber wundere dich nicht, wenn der Compiler in der nächsten Version die Kombination PWM und Clear_Timer als Fehler zurückweist. Es sind beim normalen PWM übrigens nur 510 Schritte für einen Durchlauf. Compare_A ist halt für CTC und Counter, während Compare_A_PWM für PWM verwendet wird. Die möglichen Werte der Optionen sind unterschiedlich. Das dabei evtl. die …

  • Hallo Mitch, die Config muss so lauten: Config Timer0 = Pwm , Pwm = On , Prescale = 1 , Compare_a_pwm = Clear_up , Compare_b_pwm = Clear_down Deine ist ein Mix aus PWM und CTC Konfiguration.

  • Zitat von Mitch64: „Wäsche schön, wenn man jetzt einen decompiler hätte. “ Schau dir den OBJ File doch im AVR Studio an.

  • Warum sollte das dunkler sein, wenn immer eine der beiden LEDs an ist?

  • If 200 steps are sufficient I would use mode 5, prescale 1 and OCR2A=200.

  • @tschoeatsch, wenn du noch was rausholen willst, würde ich auf die ganze ISR verzichten. Das spart dir bei jedem Timerüberlauf mehr als 100 Takte. Wenn ich das richtig verstehe macht deine Main Loop doch eigentlich gar nichts, hauptsächlich waits. In der Main Loop würde ich nur TOV0 abfragen, dann die Display Routine (deine jetzige ISR) aufrufen und dann wieder auf das Bit warten. @Michael Das hat ja nichts mit BASIC oder Unterschied Word-Byte zu tun, wenn ein Incr länger dauert als v=v+1. Umgek…

  • Ich denke, du glaubst, mit ein paar kleinen Änderungen kommst du auf deren Leistung. Das wird nichts werden. Da musst du dir schon mal genauer ansehen, was der Compiler so treibt und wie du es verbessern kannst. Incr Index_1 sieht ja nett aus, benötigt bei Word Variablen aber 19 Takte. Index_1=Index_1 + 1 nur 14. Mal eben 25% weniger. Oder das hier: BASCOM-Quellcode (3 Zeilen) 49 Takte und 11 Register, 10 alleine für die Multiplikation. Ginge auch so: BASCOM-Quellcode (7 Zeilen)29 Takte und nur …

  • Man könnte auch tricksen und die Basisadresse des Arrays auf eine glatte 256 setzen. Dann ist der Index einfach das Low-Byte, also keine Rechnerei nötig.

  • Na ja, du verwendest ja immer noch die Array-Elemente. Ob du die jetzt als Parameter übergibst oder in der Sub zuweist, kann ja nicht viel ändern. Die 8 (Bytes_in_row) Array-Elemente liegen ja direkt hintereinander im SRAM. Du holst dir also die Start_Adresse von Memory_red und den Offset auf das erste Element und inkrementierst dann nur noch diese Adresse. Genauso für die anderen Farben.

  • Ich würde versuchen, den wiederholten Aufruf der Sub Shift6out wegzulassen. Alleine der Aufruf kostet 75 Takte wegen der Array-Elemente, die Sub wird dann in 300 Takten ausgeführt, also 20% Overhead. Und in der inneren For-Schleife werden doch nur die beiden Indizes erhöht. Das kannst du doch auch leicht noch mit in die Sub packen.

  • Das nicht, aber du verstehst scheinbar seinen Punkt nicht: Nimm doch Kanal B. Auf PB.1

  • Zitat von Michael: „Die Batteriemessung kann der AVR ohne stromhungrige und langsame analoge Schaltung. “ Ich habe bei mir einen Spannungsteiler mit insgesamt 2MOhm (also 2µA), da geht die AD Wandlung ganz normal. Obwohl irgendwo steht, dass der Eingang niederohmig (also einige 10k) sein sollte.

  • Klar kannst du das so machen. In Sekunde 49 setzt du dann den OCR2 auf den gewünschten Wert (denke daran, dass der bei 0 startet), enablest dann den Compare2 und löschst das schon gesetzte Flag. In der Compare2 ISR disablest du den Interrupt dann wieder. Aufgrund der Auflösung von 3.9ms wirst du natürlich manchmal auch nicht besser mit der Genauigkeit sein als mit dem Waitms. Aber das scheint hier ja auch nicht soooooo wichtig zu sein. Wenn du weniger als 1% Duty Cycle hast (60ms/Minute) dann so…

  • Hallo Mitch, man braucht keinen Compare_Interrupt, um die PWM nutzen zu können. Dazu braucht der Controller nicht mal aufzuwachen, wenn er mit Powersave schlafen geschickt wurde. Der Timer2 läuft ja dann durch und beim Erreichen des Compare-Wertes wird der Ausgang gesetzt. Dazu muss der Timer2 nur in den Fast-PWM Mode gesetzt werden, nachdem Config Clock=Soft durchlaufen wurde. Aber: eine PWM mit 1Hz?

  • Schau dir mal in der Hilfe zu DIM die Option Overlay an. Sowohl zum Setzen des DWords, als auch zum Zerlegen geeignet.

  • Manipulationen in einem Bildspeicher

    Guenther - - LED-Anzeigen

    Beitrag

    Bytes im Array umkopieren ist doch meistens überflüssig. Da kann man doch einfach einen Zeiger auf den Anfang setzen und diesen zum Shiften vergrößern bzw. verkleinern.