Hallo Ich habe mich Leider bei der Controller Auswahl verzockt und brauche genau einen Pin mehr :-( Lange rede Kutzer sinn, Ist es Möglich Software seitigt Tx und Pin als LED Ausgang unter einen Hut (pin) zubekommen ? Wenn ja wie kann man so was angehen? Das starten ist ja einfach mit zb mySerial.begin(2400); Aber wie Beende ich das wieder Um den Pin Als LED Ausgang zu nuten ? Oder kann ich einfach beides laufen lassen? Vielen dank.
DAVID -. schrieb: > Ich habe mich Leider bei der Controller Auswahl verzockt und brauche > genau einen Pin mehr :-( Dann entwickle doch auf einem Arduino und nimm als LED pin den Reset-Pin ;-) Wenn Du das Teil nochmals umflashen willst, dann per HVP. Das funktioniert sogar ohne die LED auszulöten, wenn Du den Vorwiderstand auf12V auslegst VG Jörg
:
Bearbeitet durch User
Danke Dir! Die Möglichkeit zum HV flashen habe ich Leider noch nicht. Was aber ein Größeres Problem ist So Weit ich Weiß und Testen konnte ist es nicht Möglich den Reset für Irgendwas zu Nutzen. Jedenfalls habe ichs noch nie geschafft. Sonst würde ich darüber die Spannung messen und hätte den Freien Pin. PS(Neugierde mode an) Wie oft könnte man den Chip mit Hv Löschen ohne ihn kaputt zubekommen 2-3 mal ?
:
Bearbeitet durch User
DAVID -. schrieb: > Jedenfalls habe ichs noch nie geschafft. Mit Bootloader kein Problem. Siehe Digispark - Micronucleus DAVID -. schrieb: > PS(Neugierde mode an) > Wie oft könnte man den Chip mit Hv Löschen ohne ihn kaputt zubekommen > 2-3 mal ? Keine Einschränkungen laut DB. Also sicherlich über 10000 mal Übrigens nicht nur löschen, sondern auch beschreiben unter 12V Einfluss.
Und mit Micronucleus kann ich dann den Reset als normalen Eingang/Ausgang über die arduino IDE nutzen ? Ok werde ich mir die Tage mal genauer an sehen. Ich würde dennoch Erstmal Gucken wollen wie Weit ich mit Seriell und LED Out auf einen Pin komme. Was mit 12 Volt Beschreiben Angeht das glaube ich nicht so ganz. Mein letzer Atmega ist bei 12 Volt sofort gestoben.
DAVID -. schrieb: > Was mit 12 Volt Beschreiben Angeht das glaube ich nicht so ganz. > Mein letzer Atmega ist bei 12 Volt sofort gestoben. Nur der Reset Pin verträgt 12V. Andere Pins? Sofort tot!
Der ATtin58 hat keine UART, d.h. der Pin bleibt IO-Pin. Sobald das Senden beendet ist, kannst Du den Pin ganz normal setzen oder löschen. Beim Senden flackert die LED mit. Der Resetpin läßt sich als Tasteneingang benutzén. Zieht man ihn von 5V auf 4,5V runter, wird noch kein Reset ausgelöst. Diese Spannungsänderung läßt sich aber mit dem ADC messen. Du brauchst also neben der Taste noch 2 Widerstände als Spannungsteiler, z.B. 10k + 1k.
Peter D. schrieb: > Der ATtin58 hat keine UART, d.h. der Pin bleibt IO-Pin. Sobald das > Senden beendet ist, kannst Du den Pin ganz normal setzen oder löschen. Das könnte allerdings die UART-Gegenseite verwirren. Oliver
Ok Super ich Danke euch! Werde die Ideen mal Testen. Und das die LED mit flackert (egal) es wird nur der Akkuzustand + Laufzeit übertragen.
Ok also nicht. Eine Übertragung ohne quartz nur intern mit 8 oder 16 MHz ist nicht sauber aufzubauen. Ob mit LED oder den Pin(PB2/und zum test PB1) nur für seriell anleine ist egal. Auch von 2400-9600 getestet alles egal. Das höchste was ich hinbekommen habe von 4 Zeichen waren schon mal 3 :-) Sonst nur Datenmüll. 22⸮ ⸮26 2⸮⸮⸮⸮2⸮3 ⸮⸮⸮⸮⸮⸮⸮ 22⸮ 2⸮5⸮ ⸮23 )⸮ ⸮⸮3 ⸮224⸮ 2⸮⸮ ⸮24⸮⸮223 Ok also doch ein andren einbauen mist. Denoch danke ich euch.
DAVID -. schrieb: > Eine Übertragung ohne quartz nur intern mit 8 oder 16 MHz ist nicht > sauber aufzubauen. Für Bastlerzwecke ist die Genauigkeit durchaus brauchbar. Man kann sich auch ein Testprogramm schreiben, um das OSCCAL genauer abzugleichen. Das war aber bei mir bisher nicht nötig. DAVID -. schrieb: > Auch von 2400-9600 getestet alles egal. Ja, der prozentuale Fehler ist unabhängig von der Baudrate. Bei hohen Baudraten kann noch der Fehler hinzukommen, daß der Baudratenteiler nur ganzzahlig (F_CPU / 16 / n) teilen kann. Aber den hat der ATtiny58 ja nicht. DAVID -. schrieb: > Das höchste was ich hinbekommen habe von 4 Zeichen waren schon mal 3 :-) Das deutet eher auf einen Fehler in Deiner SW-UART hin. Anbei mal ein einfacher SW-Sender. Mit 2 Stop-Bits kann sich der Empfänger besser synchronisieren. Kann aber auch sein, daß Du das OSCCAL beim Flashen versehentlich überschrieben hast, d.h. die Werkseinstellung ist weg.
:
Bearbeitet durch User
Vielen dank PETER für dein Code und infos. Mal sehen ob ich daraus was entnehmen und anpassen kann. Sieht mir sehr nach AVR Studio aus. Ich bin mir sicher ob woll du mehr fach atiny58 schreibst das du attiny85 meinst :-) Die Taktfrequenz ist leider maximal 8 Mhz da die Spannung zwischen 3,6-4,2 Volt schwanken wird (Akku). Mein gestriger test zeigt mir aber schon das es selbst mit sauberen 5 Volt nicht gehen mag.
DAVID -. schrieb: > Auch von 2400-9600 getestet alles egal. Das stimmt was nicht. Ich habe auf einem ATmega169 mit internem Oszillator stabile Übertragung 19600 bps hinbekommen. Beim Starten lief eine Kalibrierroutine, die den internen Oszillator mittels OSCCAL und einem externen Uhrenquarz (32,768 kHz) auf Wunschfrequenz getunt hat.
Du kannst ja mal mit _delay_ms(1000) eine LED togglen und dann mit einer Stoppuhr prüfen, ob die interne Frequenz stimmt.
Tom schrieb: > Ich habe auf einem ATmega169 mit internem Oszillator stabile Übertragung > 19600 bps hinbekommen. > Beim Starten lief eine Kalibrierroutine, die den internen Oszillator > mittels OSCCAL und einem externen Uhrenquarz (32,768 kHz) auf > Wunschfrequenz getunt hat. Was natürlich gepfuscht ist. Mit Quarz kanns jeder. Oliver
Oliver S. schrieb: > Was natürlich gepfuscht ist. Mit Quarz kanns jeder. Jein. Man kann auch permanent ein 'U' (=0x55) schicken, mit dem Oszi die Bitzeit messen und das Tuning manuell machen. Oder umgekehrt: Man wartet auf ein <Enter> vom Host und vermisst dessen Bitzeiten.
Um das mal zu ende zubringen. Auch die Tipps von von Peter haben nix geändert. Egal ob 8 oder 16 MHz es wird nur müll gesendet. (Bei 16 MHz konnte man ab und zu Daten ohne Fehler finden) Und eine funktionierende ssd1306 OLED Library konnte ich auch nicht auftreiben. So mit ist das Thema endgültig erledigt und ich muss zur Atmega Reihe Wechseln. Vielleicht kann ich wenigstens dazu beitragen das es andere nicht erst testen müssen und viel zeit verschwenden. Ich danke euch für eine zahlreichen Infos.
DAVID -. schrieb: > Und eine funktionierende ssd1306 OLED Library konnte ich auch nicht > auftreiben. OK Das war Woll mal GARNIX. (Grade durch Zufall Gemerkt) Eine Passende Library wäre zb SSD1306_minimal. Problem an der Sache ist aber Sie scheint sich nicht mit andren SSD1306 Librarys zu vertragen. (Muss man erstmal Trauf kommen) Steht nur Nirgends! https://www.instructables.com/id/ATTiny85-connects-to-I2C-OLED-display-Great-Things/
Ok Zusammen Gefast ich Glaube mein USB Zu UART Converter ist nicht so Empfindlich wie ein HC-10 BT Modul. Jeden Falls Geht es bei mir Mit USB Nicht aber mit BT SEHT Komisch aber für meine Anwendung sogar noch besser. Und TFT Geht auch auf Einmal hmm.(library Konflikt) Naja Hier mal beide Code Vorlagen welche bei MIR laufen mit 8MHz Intern 3,6-4,2 Volt. BT. (Senden Geht! Empfangen nicht Getestet) #include <SoftwareSerial.h> SoftwareSerial mySerial(PB2, PB0); // RX, TX void setup() { mySerial.begin(9600); } void loop() { delay(1000); mySerial.println("Hello, world?"); } Und TFT #include "SSD1306_minimal.h" #include <avr/pgmspace.h> SSD1306_Mini oled; void setup() { oled.init(0x3c); delay(500); oled.startScreen(); oled.clear(); } void loop() { oled.cursorTo(0, 0); oled.printString("TEST"); } Und Wenn ich Später nur Mir Selber Helfe war es Schon nicht um Sonst :-)
DAVID -. schrieb: > ich muss zur Atmega Reihe Wechseln. [...] > Vielleicht kann ich wenigstens dazu beitragen das es andere nicht erst > testen müssen und viel zeit verschwenden. Tsss... Weil du krass unfähig bist, sollen andere sich daran ein Beispiel nehmen? Also: 1) Ein Mega alleine löst dein Problem in keinster Weise. Auch der braucht einen Quarz, um die Bitrate für eine UART aus dem Stand verlässlich hinreichend genau hinzubekommen. 2) Du hättest auch auf einen Tiny mit mehr Pins ausweichen und an den halt einfach einen Quarz dran bauen können. 3) Kalibrierung ist immer eine Möglichkeit, um auch ohne Quarz UART- Kommunikation möglich zu machen.
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.