- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Pin-Programmierung mit Arduino

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650

    Pin-Programmierung mit Arduino

    Anzeige

    Powerstation Test
    Frage zur Programmierung verschiedener Kontroller-Beinchen, des Atmega328:

    pinMode(0,INPUT); ist gleich pinMode(PD0,INPUT); ?
    digitalRead(0); ist gleich digitalRead(PD0); ?
    digitalWrite(0,HIGH); ist gleich digitalWrite(PD0,HIGH); ?

    Analogeingänge:

    analogRead(PC0); ist gleich analogRead(A0); ist gleich analogRead(14); ?

    analogRead(PC0); ist gleich analogRead(A0); oder digitalRead(14); ?

    digitalRead(14); ist gleich digitalRead(PC0); ?

    RESET-Pin:

    pinMode(PC6, INPUT_PULLUP);

    Müsste den internen Pull-Up-Widerstand, am Reset-Pin einschalten. Die Arduino-IDE beschwert sich jedenfalls nicht, über diesen Ausdruck.
    Falls das zum Erfolg führt, dann wäre der interne Widerstand aktiv. Wäre der Atmega328 dann noch mit einem Arduino Uno Rev3-Board programmierbar oder stört dann der interne Pull-Up?

    MfG
    Geändert von Moppi (26.09.2018 um 07:20 Uhr)

  2. #2
    HaWe
    Gast
    zu den low level Pin Nummern kann ich nichts sagen, aber für Arduino Code würde ich ime Sketch Immer die Arduino-Namen verwenden; eventuell externe Tabelle zum Abgleich, sonst ist der Code später nicht zu anderen Boards mit anderem Pin-Mapping kompatibel. Auch bei digitalem r/w auf den ADC Pins also immer die Ax-Nummern verwenden!

    pinMode(nr, INPUT) schaltet alle Pins in Read-Modus (bei analogen = default)
    pinMode(nr, INPUT_PULLUP) dto, schaltet bei allen den internen pullup dazu
    pinMode(nr, OUTPUT) schaltet alle Pins in digital Write-Modus

    digitalRead auf ADC Pins liest nur LOW/HIGH wie auf den digitalen,
    analogRead auf den ADC Pins liest 10bit-ADC 0...1023
    digitalWrite auf allen (auch ADC) pins schaltet nur LOW/HIGH
    analogWrite auf digitalen Pins schaltet pwm (8bit 0...255, IIRC, CMIIW)

    analogWrite auf ADC Pins weiß ich nicht, da sie weder DAC Pins sind (echte analog Spannung) noch unbedingt pwm können

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wenn man die analogen Eingänge als digitale Ausgänge oder Eingänge schaltet, lassen die sich, digital, mit den Nummern 14 bis 19 ansprechen. Ich glaube, digitalWrite(A0); führt dann nicht zum Erfolg (?). Aber digitalRead und digitalWrite müsste dann auf PC0 bis PC5 anzuwenden sein und zum Erfolg führen? - Hmmm....

    Ich denke ich probiers aus - Steckbrettstöpseln ist dann angesagt.

    Aber RESET-Eingang, PC6 interessiert mich. Wenn ich den äußeren Widerstand spare und den internen Pull-Up einschalte, dann kann ich den womöglich nicht mehr einfach über das Arduino Uno-Board programmieren. Das kann ich nicht ausprobieren. Weil bei Misserfolg könnte ich auch keinen Bootlader draufspielen.
    Geändert von Moppi (26.09.2018 um 09:54 Uhr)

  4. #4
    HaWe
    Gast
    doch, A0-A7 passt immer soweit ich weiß,
    denn kein Arduinianer arbeitet normalerweise mit den analogen GPIO Pin Nummern, weil die von Board zu Board wechseln.
    Sie funktionieren zwar hier vlt per 14-21, aber auf anderen Boards sind es dann vielleicht 54-61 oder so.
    Also immer beim Ax Schema bleiben!

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Wenn man direkt nur mit dem reinen IC arbeitet, bin ich dafür die Pins nur mit PBx, PCx und PDx anzusprechen, weil diese Nummern von 0 bis 19 muss man sich immer erst dazudenken. Und A0 bis A5 auch.
    Eigentlich müsste immer PCx, PBx und PDx funktionieren, egal ob analog oder digital Read bzw. Write.

    Aber RESET-Eingang, PC6 interessiert mich. Wenn ich den äußeren Widerstand spare und den internen Pull-Up einschalte, dann kann ich den womöglich nicht mehr einfach über das Arduino Uno-Board programmieren. Das kann ich nicht ausprobieren. Weil bei Misserfolg könnte ich auch keinen Bootlader draufspielen.

  6. #6
    HaWe
    Gast
    Der Reset Pin wird bei Arduino nicht programmiert soweit ich weiß, er führt automatisch einen Reset aus, wenn er auf GND verbunden wird.

    - - - Aktualisiert - - -

    es gibt aber offenbar doch einen Trick: https://forum.arduino.cc/index.php?t...593#msg1793593
    The Reset pin can be used as a digital pin with a fuse change.

    From the 328P datasheet:
    1.1.5 PC6/RESET
    If the RSTDISBL Fuse is programmed, PC6 is used as an I/O pin. Note that the electrical characteristics of PC6 differ from those of the other pins of Port C.
    If the RSTDISBL Fuse is unprogrammed, PC6 is used as a Reset input. A low level on this pin for longer than the minimum pulse length will generate a Reset, even if the clock is not running. The minimum pulse length is given in Table 29-16 on page 312. Shorter pulses are not guaranteed to generate a Reset.

    Do some reading, see if those characteristics work for you.
    If you do not have Reset tho, you will not be able to download programs via the serial port.
    I think programming can only be done via ICSP at that point. Under Memory Programming, no mention is made of whether programming still works if Reset Disable fuse is changed. Maybe being held low is recognized differently than just a low pulse.

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich wollte auch nur den äußeren Widerstand einsparen.

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Der interne PullUp Resistor ist am Reset immer aktiv. Hat laut Datenblatt einen Wert zwischen 30k und 60k.
    Der Reset-Pin hat allerdings keine Schutzdioden, da sonst keine HV-Programmierung möglich wäre.
    Wird der Reset-Pin, durch verändern der Fuses, als normaler I/O verwendet, ist nur mehr HV-Prog möglich.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    @Hubert.G

    In Figure 15-1. - Reset Logic ist zumindest einer eingezeichnet. Allerdings sieht man ja bei externen Resettastern immer, dass da noch ein Widerstand von außen mit 10k gegen Vcc angeschlossen wird. Es ist ja auch nur die Rede davon, S. 74 - 15.4, dass man für einen externen Reset LOW-Signal anlegt. Das verwirrt mich, wozu dann noch ein externer Widerstand für'n Taster dazugepackt wird.

    MfG

  10. #10
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Der externe Widerstand, von zumeist 10k, wird für ein besseres Resetverhalten dazugebaut.
    Bei einer etwas längeren Resetleitung und unsauberer Umgebung, Motor, Relais, kann es sonst zu unerwünschten Einstreuungen kommen die ein Reset auslösen.
    Der Widerstand ist also mehr Vorsichtsmaßnahme um eine Störungsquelle von vornherein auszuschließen.
    Schau dir dazu die "AVR042: AVR Hardware Design Considerations" an, dort wird auf diverse Hardwarebeschaltungen hingewiesen.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. STM32 contra ARM Cortex M3 (Arduino Due, Teensy): Performance per Arduino vs. nativ C
    Von HaWe im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 14
    Letzter Beitrag: 22.11.2017, 12:53
  2. Arduino vs. Arduino: Marke und Produktion wieder unter Kontrolle der Gründer
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 29.07.2017, 11:00
  3. Arduino Interrupt Programmierung
    Von Jeko im Forum Arduino -Plattform
    Antworten: 5
    Letzter Beitrag: 01.02.2017, 11:53
  4. Antworten: 13
    Letzter Beitrag: 07.11.2015, 02:21
  5. Erfahrungen/Tutorial: Programmierung von Arduino Due + entspr. IDE?
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 18.06.2014, 11:07

Berechtigungen

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

LiFePO4 Speicher Test