- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 37

Thema: HC-SR04 & m32

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,
    ich habe nicht das ganze Programm angesehen.

    Nur was mir auffällt:
    Echo: soll an INT1, der ist an der m32 an XBUS, Pin8
    INT1 des ATmega32 ist PD3,- das ist in dem Programm gemeint.
    Im RP6 System liegt INT1 des ATmega32 auf der CONTROL M32 am XBUS INT2 (also Pin 11).

    Trig: soll an den PB0, der ist durch das EEPROM an der m32 belegt, habe also den PB1 gewählt, der ist am sockel IC5, Pin1 (EEPROM Chip select2) - hätte es hier eine alternative gegeben?
    PB1 geht, aber ist schlecht erreichbar (nicht an einem Stecker).
    Nimm z.B. PC7, der ist frei und liegt am Stecker I/O, Pin 1.
    Als Ausgang definieren: DDRC |= IO_PC7;
    Auf HIGH setzen: PORTC |= IO_PC7;
    Auf LOW setzen: PORTC &= ~IO_PC7;

    #define INSTR_PER_US 12
    Die M32 läuft mit 16 MHz (nicht mit 12), so dass man diese und die folgende Definition anpassen müßte.

    TCCR0 = (0<<CS02)|(0<<CS01)|(1<<CS00);
    Auf der M32 ist der Timer 0 belegt. Aber: Timer 1 ist frei und nutzbar!
    Gruß
    Dirk

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    Hi Dirk,

    Zitat Zitat von Dirk Beitrag anzeigen
    INT1 des ATmega32 ist PD3,- das ist in dem Programm gemeint.
    Im RP6 System liegt INT1 des ATmega32 auf der CONTROL M32 am XBUS INT2 (also Pin 11).
    ok, das habe ich missverstanden, ist geändert


    Zitat Zitat von Dirk Beitrag anzeigen
    PB1 geht, aber ist schlecht erreichbar (nicht an einem Stecker).
    ich habe den PB1 von der m32 auf den USRBUS pin 3 gelegt, deshalb für mich besser erreichbar als der PC7, deshalb würde ich gerne bei PB1 bleiben - ein zweites EEPROM ist bei mir eher unwarscheinlich...


    Zitat Zitat von Dirk Beitrag anzeigen
    Als Ausgang definieren: DDRC |= IO_PC7;
    Auf HIGH setzen: PORTC |= IO_PC7;
    Auf LOW setzen: PORTC &= ~IO_PC7;
    würden die befehle für den PB1 so aussehen?

    Als Ausgang definieren: DDRB |= IO_PB1;
    Auf HIGH setzen: PORTB |= IO_PB1;
    Auf LOW setzen: PORTB &= ~IO_PB1;

    ich würde dann die funktion sonar ändern:

    Code:
    von:
    void sonar()
    {
        PORTB = 0x00; // clear to zero for 1 us
        _delay_us(1);
        PORTB = 0x01; // set high for 10us
        running = 1;  // sonar launched
        _delay_us(10);
        PORTB = 0x00; // clear
    }
    int __attribute__((noreturn))
    
    in:
    void sonar()
    {
        PORTB &= ~IO_PB1; // clear to zero for 1 us
        _delay_us(1);
        PORTB |= IO_PB1; // set high for 10us
        running = 1;  // sonar launched
        _delay_us(10);
        PORTB &= ~IO_PB1; // clear
    }
    int __attribute__((noreturn))
    
    EDIT: das oben hat der compiler angemeckert, das hier unten ging:
    
    void sonar()
    {
        PORTB &= ~(1<<PB0); // clear to zero for 1 us  PORTB &= ~IO_PB1;
        _delay_us(1);
        PORTB |= (1<<PB1); // set high for 10us  PORTB |= IO_PB1;
        running = 1;  // sonar launched
        _delay_us(10);
        PORTB &= ~(1<<PB0); // clear
    }
    int __attribute__((noreturn))



    fliegt mir da was um die ohren?

    Zitat Zitat von Dirk Beitrag anzeigen
    Die M32 läuft mit 16 MHz (nicht mit 12), so dass man diese und die folgende Definition anpassen müßte.
    ok geändert...

    Zitat Zitat von Dirk Beitrag anzeigen
    Auf der M32 ist der Timer 0 belegt. Aber: Timer 1 ist frei und nutzbar!
    meinst Du evtl. den Timer2 (TCCR2) - beim TCCR1 bekomme ich die meldung: TCCR1 not declared???
    Geändert von inka (21.10.2014 um 11:47 Uhr) Grund: void sonar() geändert
    gruß inka

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hi inka,
    würden die befehle für den PB1 so aussehen?
    Als Ausgang definieren: DDRB |= IO_PB1;
    Auf HIGH setzen: PORTB |= IO_PB1;
    Auf LOW setzen: PORTB &= ~IO_PB1;
    Wenn du überall "IO_PB1" durch "MEM_CS2" ersetzt: Ja.
    Übrigens: Diese Portpin-Definitionen stehen in der RP6Control.h !

    ich würde dann die funktion sonar ändern: ...
    fliegt mir da was um die ohren?
    Nein, alles wird gut.

    meinst Du evtl. den Timer2 (TCCR2) - beim TCCR1 bekomme ich die meldung: TCCR1 not declared???
    Nein, ich meinte schon den Timer 1.
    Wenn du mal in der RP6ControlLib.c ganz am Ende in die Funktion initRP6Control() schaust:
    Du siehst die Nutzung von Timer 0 und Timer 2 und "Timer 1 is free for your application!"

    Mögliches Problem:
    Du kannst deinen Muster-Code mit Timer 0 nicht so 1:1 für Timer 1 übernehmen, weil Timer 0 ein 8-Bit-Timer ist und Timer 1 ein 16-Bit-Timer.
    Die Initialisierung sieht also unterschiedlich aus. Wenn du das anpassen willst, must du zuerst verstehen, wie in deinem Muster-Code der Timer 0 genutzt wird und dir dann den Timer 1 identisch konfigurieren.
    Gruß
    Dirk

Ähnliche Themen

  1. SRF02 und HC-SR04
    Von inka im Forum Robby RP6
    Antworten: 9
    Letzter Beitrag: 09.10.2014, 20:20
  2. Ansteuerung Ultraschallsensor HC-SR04
    Von icebreaker im Forum C - Programmierung (GCC u.a.)
    Antworten: 7
    Letzter Beitrag: 07.08.2013, 16:12
  3. Verkaufe Verkaufe RN-Control 1.4 Mega32 & 2x Servomotor & Entfernungssensor & PC Anschlusskabe
    Von Reiner47 im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 1
    Letzter Beitrag: 10.06.2013, 23:07
  4. Verkaufe [V] IC's & Diverse Platinen & SPS & Thin Clients & Display 6.4" Touch
    Von Noy im Forum Kaufen, Verkaufen, Tauschen, Suchen
    Antworten: 0
    Letzter Beitrag: 14.01.2012, 01:43
  5. Antworten: 5
    Letzter Beitrag: 22.11.2007, 10:17

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress