- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 15

Thema: RC-Empfängers an PCINT1/2 bei ATMEGA88

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31

    Frage RC-Empfängers an PCINT1/2 bei ATMEGA88

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo an das Forum,

    bin neu hier und komme bei der Programmierung eines ATMEGA88 nicht weiter.

    Ich möchte an Pin 15 u. 16 die Signale eines RC-Empfängers in einer ISR einlesen lassen und diese dann im Hauptprogramm weiterverarbeiten. Die INT0/1 pins habe ich schon mit anderen Dingen belegt, so dass ich auf die PCINT1/2 zurückgreifen muss.
    In meinen Büchern und im Internet habe ich noch nicht die passenden Passagen gefunden, die mir bei meinem Problem weiterhelfen würden.

    Code:
    'Autosteuerung
    $regfile = "m88def.dat"
    $crystal = 16000000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    Dim I As Integer
    On Timer1 Fehler
    
    Config Portc.3 = Output
    Config Pinb.1 = Input
    
    Sreg.7 = 1                                        'Globale Interrupts einschalten
    Pcicr.0 = 1                                       'PCInterrupt einschalten
    Pcifr.0 = 1
    Pcmsk0 = &B00000010                               'Einschalten  pcint1
    Pinb.1 = 0
    
    On Pcint1 Lesen
    
    Config Timer1 = Counter , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
    Enable Timer1
    Enable Interrupts
    
    'Display Einrichten
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portb.4 , Rs = Portb.5
    Config Lcd = 16 * 2
    Cursor Off
    Cls
    
    Upperline : Lcd "  Los gehts:"
    
    Do
     Lowerline : Lcd "  Puls: " ; I ; " ms   "
     Toggle Portc.3
    Loop
    
    
    Lesen:
      If Pinb.1 = 1 Then
       Pulsein I , Pinb , 1 , 1
      End If
    Return
    
    Fehler:
     Timer1 = 0
    Return
    end
    Nun zu meinen Fragen:
    - Was mache ich falsch, denn die ISR scheint nicht zu starten?
    - Wie messe ich mit dem TIMER1 die genaue Länge der Signale um sie dann für Berechnungen weiter zu verwenden?
    - Ich möchte weg von den Assembler-ähnlichen Eingaben, weil ich sie nicht verstehe. Im Datenblatt stehen nur Beispiele für C und Assembler. Wie muss der Code für Bascom aussehen, dass das richtig funktioniert?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Moin-moin!

    Das sieht schon ziemlich gut aus, und zu Deinen Fragen gibt´s auch Antworten!
    Erstmal gibt´s aber noch ein paar Anmerkungen zu Deinem bisherigen Code (von oben nach unten):

    SREG.7=1 ist korrekt - genau das gleiche macht aber auch der Befehl "Enable Interrupts". Das ist also quasi doppelt gemoppelt.
    PCICR.0=1 aktiviert den PCINT0 - auf "Bascom" könnte man aber analog dazu "Enable PCINT0" schreiben (liest sich einfacher).

    Das Bit PCIFR.0 dient dem Controller dagegen als sogenanntes "Flag" (so ´ne Art Signal) - es wird gesetzt wenn die Interrupt-Bedingung eintritt, und gelöscht wenn die dazugehörige Interrupt-Routine ausgeführt wurde. Der Controller macht das ganz alleine; dieses Bit solltest Du also erstmal in Ruhe lassen

    PINB.1=0: Die PIN-Register enthalten die logischen Zustände die an einem Anschluss anliegen, der als Eingang konfiguriert ist. Man fragt sie also ab wenn man wissen möchte, ob ein Anschluss High oder Low ist. Vermutlich wolltest Du den PullUp-Widerstand des Eingangs B.1 aktivieren - das ginge dann mit PORTB.1=1.

    Compare A = Toggle, Clear Timer = 1: Diese Befehle braucht man nur für PWM-Anwendungen - in diesem Fall sind sie unnötig.


    Und diese Sequenz

    Do:
    Lowerline : LCD " Puls: " ; I ; " ms"
    Toggle PORT.3
    Loop

    ist auch etwas problematisch: Dein LCD hämmert alle paar Millisekunden seine Buchstaben in die untere Zeile - und zwar hintereinander. Das heißt, schneller als Du sehen kannst ist die untere Zeile vollgeschrieben, und alles was danach kommt geht in´s "Nirvana".
    Abhilfe würde hier der Befehl "Locate 2,1" vor dem LCD-Befehl schaffen: Damit startet jeder Ausdruck an der ersten Stelle der zweiten Zeile.


    Und zu den PCINTs muss man auch ein paar Dinge wissen, um die Wirrnis zu verstehen:

    Es gibt 24 Anschlüsse, die einen Pinchange-Interrupt auslösen können: PCINT0, PCINT1,...PCINT23. Es gibt aber keine 24 unterschiedlichen Pinchange-Interrupts, sondern nur drei: PCINT0, PCINT1 und PCINT2 (vergleichbar mit den beiden "normalen" Interrupts INT0 und INT1). Dass diese drei Interrupts genauso heißen wie die ersten drei Anschlüsse, ist sehr verwirrend. Die Interrupt Anschlüsse sind nun in 8er-Gruppen zusammengefasst, von denen jeder Anschluss den selben Interrupt auslöst:

    Anschlüsse PCINT0-PCINT7 -> PCINT0
    Anschlüsse PCINT8-PCINT15 -> PCINT1
    Anschlüsse PCINT16-PCINT23 -> PCINT2

    Wenn Du also über den Pin 15 den Interrupt auslösen möchtest, ist das der Anschluss PCINT1, und somit die Interrupt-Routine PCINT0 ! (verwirrend, aber wahr)
    Das PCMSK-Register hast Du also korrekt gesetzt mit &B00000010. Und PCICR.0=1 ist auch korrekt, schließlich möchtest Du ja die Gruppe "PCINT0" aktivieren (man könnte auch in Bascom direkt schreiben "Enable PCINT0).
    Aber Du musst dann "On PCINT0 Lesen" schreiben!

    Und die Messung von RC-Impulsen habe ich immer so gemacht:

    Lesen:
    If PINB.1=1 then
    Timer1=0
    Else
    I=Timer1
    End if
    Return

    Heißt also, dass der Timer zurückgesetzt wird wenn der Impuls beginnt (Flanke und PINB.1=1), und sein aktueller Wert auf die Variable I überschrieben wird, wenn der Impuls endet (Flanke und PINB.1=0). Wenn Du einen Prescaler von 64 nimmst, läuft der Timer erst nach 200 ms über - in dieser Zeit sollten mindestens 10 Impulse aufgelaufen sein. Und wenn nicht, springt der Controller berechtigterweise in die ISR "Fehler".

    Wenn Du dann noch ein "Flag" setzt wenn das Impulsende erkannt wurde, kannst Du in der Hauptschleife das Flag abfragen und den LCD-Befehl nur ausführen lassen, wenn auch tatsächlich ein neuer Impuls gemessen wurde. Aber das wäre vielleicht was für die nächste Runde

    Ich hoffe, das waren nicht zu viele & verwirrende Informationen - ansonsten einfach nachfragen!
    Geändert von Sauerbruch (16.08.2013 um 16:37 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hallo,

    Du könntest auch einfach auf den Bascombefehl "pulsein" ausweichen. Der PCINT muss dann ein einfacher Eingang sein(+PullUp an), an dem das RC-Signal anliegt. Da ist dann zwar kein Timer mehr händisch programmiert, aber man sieht eh nicht wozu Du den unbedingt brauchst

    Ein RC-Empfänger gibt soweit ich es burteilen kann immer ein Signal aus solange der Empfänger Spannung hat und der Sender am Empfänger ankommt. Kommt eine "0" an, ist die Verbindung weg ( das habe ich allerdings ganz sicher nur mit Spannungsunterbrechung probiert - also Reichweitentest steht noch aus.)

    Wichtig ist auch das die 16mega Crystal-Frequenz vom Mikrocontroller bereitgestellt wird und nicht nur im Code geschrieben wurde.
    Pulsein funktioniert nach meiner Erfahrung ab 4Mhz erst zufriedenstellend.
    Damit habe ich mit meiner Funke einen Neutralwert von ca. 150 (mit Trimmer) eingestellt. Auch auf LCD Display...da ich das aber nur zum üben dran hatte habe ich später wieder auf Terminalausgaben gewechselt.

    Hier mal ein Beispiel wie man es nutzen könnte:
    https://www.roboternetz.de/community...hlight=pulsein
    Geändert von HeXPloreR (16.08.2013 um 16:59 Uhr)

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Jippy, ich habs endlich kapiert.

    [code]
    'Autosteuerung
    $regfile = "m88def.dat"
    $crystal = 256000
    $hwstack = 40
    $swstack = 40
    $framesize = 40

    Dim I As Integer
    Dim I2 As Integer

    Config Portc.3 = Output
    Config Portc.2 = Output

    Enable Interrupts
    Enable Pcint0

    Pcmsk0.pcint1 = 1


    On Pcint0 Lesen:

    Do
    Portc.3 = 1
    Waitms 100
    Portc.3 = 0
    Waitms 100
    Loop

    Lesen:
    Toggle Portc.2
    Return


    End
    [code]

    so funktioniert erstmal das was ich wollte.

    vielen, vielen Dank
    Weiteres folgt

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Genau das wollte ich:

    Code:
    'Autosteuerung
    $regfile = "m88def.dat"
    $crystal = 512000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    Dim I As Integer
    Dim I2 As Integer
    
    Config Portd.3 = Output
    Config Portd.2 = Output
    Config Portd.1 = Output
    
    Config Timer1 = Counter , Prescale = 1
    Enable Timer1
    
    'Display Einrichten
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portb.4 , Rs = Portb.5
    Config Lcd = 16 * 2
    Cursor Off
    Cls
    
    Enable Interrupts
    Enable Pcint0
    Enable Pcint1
    
    Pcmsk0 = &B00000010
    Pcmsk1 = &B00001000
    
    On Pcint0 Lesen1
    On Pcint1 Lesen2
    
    Do
     Portd.1 = 1
     Upperline : Lcd "  " ; I ; "  "
     Lowerline : Lcd "  " ; I2 ; "  "
     Portd.1 = 0
    
    Loop
    
    Lesen1:
     If Pinb.1 = 1 Then
        Timer1 = 0
     Else
         I = Timer1
     End If
    
     Toggle Portd.3
    Return
    
    Lesen2:
     If Pinc.3 = 1 Then
        Timer1 = 0
     Else
         I2 = Timer1
     End If
    
     Toggle Portd.2
    Return
    
    End
    beide Kanäle werden getrennt erkannt mit:
    high 29500
    middle 22600
    low 15300

    und das Programm läuft mit ca 3,5 khz durch für die Berechnungen und Ausgaben. Genau das wollte ich:

    - - - Aktualisiert - - -

    Eine Frage hab ich ab aber noch

    ... Wichtig ist auch das die 16mega Crystal-Frequenz vom Mikrocontroller bereitgestellt wird und nicht nur im Code geschrieben wurde...
    Ich dachte, es reicht wenn das im Code steht. Ich hab einen externen Quarz dran mit 16 Mhz. Wie sag ich ihm, dass er den nutzen soll? Welche Auswirkungen hat es, wenn es noch im Code anders steht?

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Zitat Zitat von therealosram Beitrag anzeigen
    Genau das wollte ich:

    Code:
    $crystal = 512000
    und das Programm läuft mit ca 3,5 khz durch für die Berechnungen und Ausgaben. Genau das wollte ich:
    naja, das Du jetzt genau das wolltest bezweifel ich etwas, denn dann würde in Deinem Code die 16Mhz drin stehen...
    Der Compiler berechnet aus der Angabe im Code die Timer und Waits usw usw. Die Quarzfrequenz im Atmega bleibt davon aber unbeeindruckt, der läuft möglicherweise noch auf 1Mhz.
    Ein einfacher Hardwaretest, wäre eine LED im Sekundentakt blinken zu lassen...


    Man setzt die Fuses dafür auf 16Mhz- ich nutze den mySmartUSB MKII und meistens das ProgTool dazu, deswegen kann ich keine qualifizierte Aussage darüber machen wie es ganz genau in Bascom geht, aber es geht auch dort im manuellen Brennmodus einzustellen. Aber erstmal würde ich schauen womit er grade läuft.
    (!!!!!VORSICHT: FALSCHE FUSES MACHEN DEN CHIP MÖGLICHERWEISE VORERST ODER DAUERHAFT UNBRAUCHBAR!!!!!!)

    Kann der Atmega die 16MHz auch vertragen?

    Du bist übrigens mit Deiner I und I2 Variable vom Type Integer ziemlich nah am Limit, viellicht macht es Sinn dort einen Word zu nehmen, da es vermutlich eh nur positive Werte annehmen wird?
    Hier ein kleines Tutorial in Bas-com.
    Geändert von HeXPloreR (18.08.2013 um 12:00 Uhr)

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Hallo,

    ich nutze einen "mySmart USB light" und die Demoversion von Bascom-AVR.
    Das mit dem "Verfusen" von ATmegas hab ich schon durch bei der Einstellung des Quarzes. Zwei davon hab ich schon auf externen Quarz gesetzt und muss sie erstmal wieder recovern. "Nächstes Projekt"
    Mittlerweile nutze ich die Einstellung: "111111: Ext. Crystal Osc." Eine Frequenz steht da leider nicht dabei. Ich hoffe, das sind 16 Mhz.

    Hier nun mein Projekt.

    Doppelte H-Brücke für zwei 24V/250 W Motoren.
    ATMEGA88, 4xIR2104 als FET-Treiber, 16x IRF1404 FET's, 8x MBR1645 als FET-Schutz

    Klicke auf die Grafik für eine größere Ansicht

Name:	20130819_100844.jpg
Hits:	6
Größe:	84,2 KB
ID:	26246

    Hauptprogramm läuft mit Berechnungen bei ca. 5,6 Khz durch. Das reicht meiner Meinung nach.Bei Signalverslust läuft das Programm direkt in die Fehlerroutine und schaltet die Treiber aus.Jeder, der mit "alten" Modellbaufernbedienungen Erfahrungen hat, weiß wie fatal ein Signalverlust an den Servos/Fahrtregler ist. Da "stirbt" meistens was. (Modell, Motor, ....)

    Hier noch der Code. Sicherlich gibts da Dinge, die man noch besser gestalten könnte, aber so läufts sauber und ich weiß auch wie.
    Vielen Dank für Eure Hilfe.

    p.s.: Wo bekomm ich eine bezahlbare Vollversion von BASCOM-AVR her?


    Code:
    'Autosteuerung
    $regfile = "m88def.dat"
    $crystal = 512000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    '** Ports/Pins *********************************************************************************
    Config Portd.5 = Output                           '11 PWM_L_Low
    Config Portd.6 = Output                           '12 PWM_L_High
    Config Portb.3 = Output                           '17 PWM_R_High
    Config Portd.3 = Output                           '05 PWM_R_low
    Config Portb.2 = Output                           '16 Enable links
    Config Portc.3 = Output                           '26 Status_LED
    Config Portb.1 = Output                           '15 enable Rechts
    
    Config Pinc.4 = Input                             '27 correction Left
    Config Pinc.1 = Input                             '24 corrention Right
    Config Pind.2 = Input                             '04 Taster
    Config Pinc.0 = Input                             '23 rechte Eingabe Poti
    Config Pinc.5 = Input                             '28 Linke Eingabe Poti
    
    '** Ports benennen *****************************************************************************
    Correct_l Alias Pinc.4                            'pin 27
    Correct_r Alias Pinc.1                            'pin 24
    Taster Alias Pind.2                               'pin 04
    Led Alias Portc.3                                 'pin 26
    Enable_l Alias Portb.2                            'pin 16
    Enable_r Alias Portb.1                            'pin 15
    R_poti Alias Portc.0                              'pin 23
    L_poti Alias Portc.5                              'pin 28
    'RC_L_in Pin 06
    'RC_R_in Pin 25
    
    '** Variablen **********************************************************************************
    Dim In_l As Integer                               'Eingabevariablen Signal
    Dim In_r As Integer
    Dim In_type As Bit                                'Art der Eingabe
    Dim L_high As Word                                'Ausmaße Links
    Dim L_mid As Word
    Dim L_low As Word
    Dim R_high As Word                                'Ausmaße Rechts
    Dim R_mid As Word
    Dim R_low As Word
    Dim L_quotient As Single                          'Runterrechnen auf Bytewert
    Dim R_quotient As Single
    Dim L_verschiebung As Word                        'Verschieben des Mittelwertes
    Dim R_verschiebung As Word
    Dim L_korrekt As Single                           'Anpassen unterschiedlicher Motoren
    Dim R_korrekt As Single
    Dim Calc_l As Single                              'Berechnung PWM
    Dim Calc_r As Single
    Dim Pwm_l As Byte                                 'Ausgabe PWM
    Dim Pwm_r As Byte
    Dim I As Word                                     'allgemeine Variable
    
    '** Configs ************************************************************************************
    Config Timer0 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 256
    Config Timer1 = Counter , Prescale = 8 , Noise Cancel = 1
    Config Timer2 = Pwm , Compare A Pwm = Clear Up , Compare B Pwm = Clear Down , Prescale = 256
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Enable Timer0
    Enable Timer1
    Enable Timer2
    Start Adc
    Enable Interrupts
    Enable Pcint1
    Enable Pcint2
    Pcmsk1 = &B00000000
    Pcmsk2 = &B00000000
    Pcmsk1.pcint10 = 1
    Pcmsk2.pcint20 = 1
    
    
    On Pcint1 Rc_in_r
    On Pcint2 Rc_in_l
    
    '** Display Einrichten *************************************************************************
    'Config Lcdpin = Pin , _
    '       Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portb.4 , Rs = Portb.5
    'Config Lcd = 16 * 2
    'Cursor Off
    'Cls
    
    '** Variablen zuweisen *************************************************************************
    Taster = 1
    Enable_l = 0
    Enable_r = 0
    L_quotient = 6.867
    R_quotient = 6.621
    L_verschiebung = 277
    R_verschiebung = 293
    
    '** Initialisierung ****************************************************************************
    
    
    
    Do
    Loop Until Taster = 0
    
    '** Hauptschleife ******************************************************************************
    Go:
    Do
    
      Led = 1                                         'Frequenzmessung möglich
    
      'Locate 1 , 1 : Lcd " " ; In_l ; " "
      'Locate 2 , 1 : Lcd " " ; In_r ; " "
    
      Led = 0
      If In_l > 4000 Or In_l < 1500 Or In_r > 4000 Or In_r < 1500 Then Goto Fehler
    
      Calc_l = In_l
      Calc_r = In_r
    
      'Linearregelung ******************************************************************************
      Calc_l = Calc_l / 6.867
      Calc_l = Calc_l - 277
    
      Calc_r = Calc_r / 6.621
      Calc_r = Calc_r - 300
    
      If Calc_l > 254 Then Calc_l = 254
      If Calc_l < 1 Then Calc_l = 1
    
      If Calc_r > 254 Then Calc_r = 254
      If Calc_r < 1 Then Calc_r = 1
    
      '** Variablenübergabe ************************************************************************
    
      Pwm_l = Calc_l
      Pwm_r = Calc_r
    
      '** PWM umsetzen *****************************************************************************
      If Pwm_l > 148 Or Pwm_l < 108 Then
         Enable_l = 1
      Else
         Enable_l = 0
      End If
    
      If Pwm_r > 148 Or Pwm_r < 108 Then
         Enable_r = 1
      Else
         Enable_r = 0
      End If
    
      Pwm0a = Pwm_l
      Pwm0b = Pwm_l
      Pwm2a = Pwm_r
      Pwm2b = Pwm_r
    
    Loop
    
    '** Empfängerdaten auslesen ********************************************************************
     Rc_in_r:
      If Pinc.2 = 1 Then
         Timer1 = 0
      Else
          In_r = Timer1
      End If
     Return
    
     Rc_in_l:
      If Pind.4 = 1 Then
         Timer1 = 0
      Else
          In_l = Timer1
      End If
     Return
    
    
    '** Fehlerroutine ******************************************************************************
    Fehler:
      Enable_l = 0
      Enable_r = 0
      Pwm0a = 128
      Pwm0b = 128
      Pwm2a = 128
      Pwm2b = 128
    
    Do
    Led = 1
    Waitms 3000
    Led = 0
    Waitms 3000
    Loop
    Geändert von therealosram (19.08.2013 um 12:46 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Zitat Zitat von HeXPloreR Beitrag anzeigen
    naja, das Du jetzt genau das wolltest bezweifel ich etwas, denn dann würde in Deinem Code die 16Mhz drin stehen...
    Der Compiler berechnet aus der Angabe im Code die Timer und Waits usw usw. Die Quarzfrequenz im Atmega bleibt davon aber unbeeindruckt, der läuft möglicherweise noch auf 1Mhz.
    Ein einfacher Hardwaretest, wäre eine LED im Sekundentakt blinken zu lassen...


    Man setzt die Fuses dafür auf 16Mhz- ich nutze den mySmartUSB MKII und meistens das ProgTool dazu, deswegen kann ich keine qualifizierte Aussage darüber machen wie es ganz genau in Bascom geht, aber es geht auch dort im manuellen Brennmodus einzustellen. Aber erstmal würde ich schauen womit er grade läuft.
    (!!!!!VORSICHT: FALSCHE FUSES MACHEN DEN CHIP MÖGLICHERWEISE VORERST ODER DAUERHAFT UNBRAUCHBAR!!!!!!)

    Kann der Atmega die 16MHz auch vertragen?

    Du bist übrigens mit Deiner I und I2 Variable vom Type Integer ziemlich nah am Limit, viellicht macht es Sinn dort einen Word zu nehmen, da es vermutlich eh nur positive Werte annehmen wird?
    Hier ein kleines Tutorial in Bas-com.
    10 Zeichen

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    15.08.2013
    Ort
    Güstrow
    Beiträge
    31
    Der Binärcode hat in der Auswahlliste nur 6 Stellen.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.01.2007
    Ort
    westliches Pannonien
    Beiträge
    123
    Hallo,

    Du verwendest also einen 512KHz Quarz?
    Klick mich.

    MfG

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. [ERLEDIGT] Pwm Motorsteuerung mit PCINT1
    Von Balu18 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 09.03.2013, 18:48
  2. ATmega88 (Blinklicht)
    Von steep im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.07.2011, 13:08
  3. PortD als Eingang mit Pullup bei Atmega88 geht nicht!?
    Von Stomper im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 30.10.2008, 09:16
  4. Abschalten einer RC-Empfängers?
    Von krischan100 im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 15.07.2006, 09:34
  5. PS2 Steckerbelegung eines GPS Empfängers
    Von Amiwerewolf im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 5
    Letzter Beitrag: 03.07.2006, 18:13

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress