- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: miniatur kurzhubSCHALTER

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Zitat Zitat von ExXeQtor
    ... was der unterschied zwischen dem attiny 13v 10su und 10ssu ist irgendwie bin ich zu Blind ...
    Irgendwie ist es mir fast peinlich, den gleichen Spruch immer wieder zu bringen: Umgang mit Controllern ohne das Datenblatt zu lesen gehört zu den letzten großen Abenteuern unserer Tage.

    Zitat Zitat von ExXeQtor
    ... bist du durchgängig im sleep und weckst den µC nur kurzzeitig mit einem tastendruck auf ...
    Neeein. Der Controller läuft - das ganze Programm, notfalls bis zum Ende der Akkukapazität - wenn er nicht irgendwann im "eigentlichen" Programm wieder beim Sleep vorbeigeschickt wird. Dann schläft er bis zum nächsten Tastendruck. Inzwischen kann die Taste natürlich auch andere Reaktionen einleiten.

    Zitat Zitat von ExXeQtor
    ... wie würdest du ihn denn mit derselben taste wieder einschlafen lassen ...
    Also ein bisschen eigenes Überlegen wäre doch ganz nett. Steht aber, genaugenommen im oberen Absatz. Code (Text *ggg*) dazu gibts nicht. Das Ganze hatte immer zwei Taster. Ursprünglich ging der erste an /RESET. Mittlerweile sind beide für die Steuerung (daher auch ein tiny85).

    ............Bild hier  
    Ciao sagt der JoeamBerg

  2. #12
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Warum nicht einfach z.B. ein D-FF (4013) zwischen Taster und den "Rest", bei jedem Tasten Druck Ändert sich der Q Ausgang vom D-FF und mit einem kleinen C kann auch eine extra Endprell Schalung entfallen.

    Das 4013 nur weil ich das früher oft eingesetzt habe und das deshalb halt immer noch im Hirn gespeichert ist.

    Gruß Richard

  3. #13
    Benutzer Stammmitglied
    Registriert seit
    12.01.2010
    Beiträge
    64
    @Richard:
    danke, das werde ich aber aufgrund von platzproblemen eben nicht tun können, auch den 4013er gibts soweit ich weiß auch als smd nur in der 4er(oder mehr?) flipflop version..

    @oberallgeier
    Ja, du hast schon recht, den hinweis mit dem datenblatt bekomme ich auch immer wieder. ich bitte nur darum zu bedenken, dass man als anfänger oft den wald vor lauter bäumen nicht sieht, vorallem wen es mehr als 170 bäume(seiten) sind und der wald voller bit und registerbeschreibungen die einem größtenteils nichts sagen.

    ich habe gerade (mal wieder) einige zeit mit dem lesen des avr-gcc tutorials auf mikrocontroller.net verbracht und auch mit deinem code immernoch probleme...
    ich weiß genau, was ich will - einfach durch einen externen pinchange interrupt eine funktion ausführen, die mir lediglich eine boolvariable setzt - den rest kann ich dann in der bisherigen funktion einfach über eine schleife klären. das problem ist, dass ich zB in deinem code nicht erkenne, was der interrupt nun genau auslöst - in meiner anfängerdenke Suche ich momentan nach irgendeiner stelle, die ausgeführt wird, sobald der intterupt auftaucht - aber die erkenne ich nicht.

    um den code auf meine anwendung zu übertragen:
    um bei einem logikwechsel an PB3 einen pinchangeinterrupt auszulösen muss ich die register auf

    GIMSK |= (1<<PCIE); (wie du den pinchangeinterrupt enablen)
    PCMSK |= (1<<PCINT3);

    setzen, dann im code die interrupts global enablen
    sei();

    und wie heißt dann die funktion, die durch den interrupt aufgerufen wird?
    ich habe natürlich (um dem vorzubeugen) im datenblatt nach den funktionen gesucht und dinge wie
    ISR(INT0_vect)

    gefunden - was müsste bei mir in klammern stehen? PCINT3?
    also ISR(PCINT3_vect)?

    ich hoffe die fragen waren präzise genug, die orientierung bei den interrupts fällt mir außerordentlich schwer... danke für jede hilfe!

  4. #14
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von ExXeQtor
    ... hinweis mit dem datenblatt ... und der wald voller bit und registerbeschreibungen ...
    Ok, stimmt ja. Ging mir genauso.

    Dieses Datenblatt, Seite 160 oben. Kleiner Tip: vielleicht hat Dein PDF-Reader eine Suchfunktion, dann Suche mal nach "10ssu" - es gibt nur ZWEI Treffer. Beide betreffen die Bauform "S8S1". Also nochmal Suchfunktion damit füttern - dann stolperst Du zur Seite 163. Du siehst - ich behaupte zwar, dass ich lesen kann (sogar in der einen und anderen Sprache auch intensiv und diagonal-intensiv) - aber manchmal mache ich es mir total bequem. Lass den Wald vom Rechner durchsuchen. Und entschuldige bitte, dass ich so kurz angebunden war.

    Zitat Zitat von ExXeQtor
    ... und wie heißt dann die funktion, die durch den interrupt aufgerufen wird ... im datenblatt ... dinge wie ISR(INT0_vect) ...
    GENAU so ist es. Das steht auch bei meinem Codebeispiel oben. Der Tiny13 hat nur eine kurze Interrupt-Vektortabelle, siehe DS 44 (D okumentation, S eite). Beachte dazu auch DS 45, Punkt 9.2, DS Punkt 9.3.2 - Bit 5 – PCIE und DS 47 - Punkt 9.3.4 - Bits 5:0.

    Kurz: Mit Deinem "PCMSK |= (1<<PCINT3);" hast Du die PinChange-MaSKe auf den Port B3 gelegt, vgl. dazu DS 2 in Figure 1-1 das Pinout von 8-PDIP/SOIC. Jetzt wird dieser PinChange diesen einzigen PinChange-Interrupthandler anspringen, den der tiny13 hat. Und der hat die Adresse "ISR(INT0_vect)".

    Zitat Zitat von ExXeQtor
    ... also ISR(PCINT3_vect) ...
    Auf DS 44, Punkt 9.1 Interrupt Vectors hast Du ja eben bemerkt, dass es NUR diesen PCINT0 gibt auf Programm Adresse 0x0002. Und in Deinem AVR-GCC-Verzeichnis (bei mir heißt es "WinAVR-20090313") findest Du in der subdirectory "...\WinAVR-20090313\avr\include\avr" die tiny13-Headerdatei iotn13.h. Suche dort drin nach "PCINT0" - etwa Zeile 289. Dann wird Dir einiges klar.

    ... die orientierung bei den interrupts fällt mir außerordentlich schwer ...
    Ach weißt Du, das hatte bei mir ewig gedauert, bis ich das halbwegs blickte. Und dicke wirds erst, wenn ein Interrupt (in Assembler) kommt, den man garnicht erwartet und daher auch nicht bedient. Aber den man erlaubt hatte, weil man noch nicht ALLES kennt *ggg*.

    Ich gebs ja zu - es sind einige Bäume - zusätzlich zu den von Dir gezählten mehr als 170.

    OK? Verstanden?
    Ciao sagt der JoeamBerg

  5. #15
    Benutzer Stammmitglied
    Registriert seit
    12.01.2010
    Beiträge
    64
    Mehr als einverstanden!
    Großes Lob an deine Geduld und Hilfsbereitschaft!
    Gesucht hatte ich auch schon mit der Suchfunktion, allerdings ohne die "10" vorm ssu. und dann macht das ganze keinen spaß mehr, wie wörter wie assume, assure, issuing etc pp nahelegen

    Ich dachte erst jeder über PCINTx "interrupt-aktivierte" Pin hätte dann seinen ebenso heißenden vector - aber wenn ich das jetzt hoffentlich endlich richtig verstanden habe, sprechen sie in diesem fall alle den selben vector an - dh ich kann zwar mit mehreren pins einen pinchange interrupt auslösen - aber dann immer denselben(PCINT0)! korrekt?

    mit dem von oben klappt mein testprogramm soweit es scheint ausgezeichnet. endlich ein erfolgserlebnis

  6. #16
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von ExXeQtor
    ... Gesucht hatte ich ... ohne die "10" vorm ssu ... wörter wie assume, assure ...
    Und manchmal findet man es nicht MIT der 10, weil ein Zwischenraum da ist . . . . . Und z.B. der AcrobatReader berücksichtigt kein angehängtes Leerzeichen (mit dem jeder popelige Editor ein assume unbeachtet lässt) und versteht auch keine wildcards wie * oder ?.

    Zitat Zitat von ExXeQtor
    ... ich kann zwar mit mehreren pins einen pinchange interrupt auslösen - aber dann immer denselben(PCINT0)! ...
    Genau so ist es. Diese Philosophie gilt auch für andere Controller - und andere Anschlussdefinitionen. Der mega168/~328 z.B. hat 28 Pinne, davon 23 PCINTi, aber nur drei PCINT-Vektoren. Die 23 PCINT-Pinne sind in drei Gruppen zusammengefasst. Oder - der ADC wird gemultiplext . . . uswusf.

    Zitat Zitat von ExXeQtor
    ... klappt mein testprogramm soweit es scheint ausgezeichnet ...
    Schön. Aber die nächsten Bäume ähhhh Probleme stehen sicher schon bereit.
    Ciao sagt der JoeamBerg

  7. #17
    Benutzer Stammmitglied
    Registriert seit
    12.01.2010
    Beiträge
    64
    Zitat Zitat von oberallgeier
    Schön. Aber die nächsten Bäume ähhhh Probleme stehen sicher schon bereit.
    Da hast du recht, jetzt hänge ich daran, dass die bool variablen, die ich in meiner ISR verändere so tun als gäbe es sie gar nicht. dann bekam ich das stichwort "volatile" - durch die deklaration als volatile bool ändert sich aber auch nichts...
    nuja. ich probiere und probiere
    vielen dank für die hilfe soweit! Ohne ginge es wohl gar nicht.

  8. #18
    Hallo,
    ich bin neu hier und ich möchte meinen ATtiny13A auch gerne schlafen "legen".
    Mich würde der C-Code brennend interessieren.
    Wo kann ich den bekommen bzw ansehen ?
    Schöne Grüße
    Noppsing

  9. #19
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von noppsing
    ... ich bin neu hier ...
    Herzlich Willkommen!

    Zitat Zitat von noppsing
    ... ATtiny13A ... schlafen "legen" ... C-Code ... Wo kann ich den bekommen ...
    DAS ist ziemlich einfach. Du musst nur in DIESEM Thread die erste Seite durchsehen. Da habe ich etwa in der Mitte (m)einen Code zum Sleepmodus einschliesslich einer Weckmöglichkeit mittels Taster gepostet. Ausserdem ist auch eine Schaltung vorgestellt, mit der erheblich weniger Strom verbraucht wird als im Sleepmodus der Atmelcontroller.

    Übrigens macht sich bei solchen Fragen die Suchfunktion des Forums bezahlt . . . . wenn man die benutzt.

    Viel Erfolg.
    Ciao sagt der JoeamBerg

  10. #20
    Hallo, vielen Dank !
    Ich war mir nicht sicher ob der code der endgültige Stand ist. Tolle Schaltung !!
    Schöne Grüße Noppsing
    Geändert von noppsing (09.06.2011 um 09:12 Uhr)

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen