- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 10 von 41

Thema: Zusätzlich zu der M32 noch ein mega8?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    So weit so gut.... der mega8 kann die anzeige perfekt steuern, hier code:

    Code:
    #include <avr/io.h>
    #include "i2cmaster.h"
    #include <util/delay.h>  
    
    #define pcf 0b01000110  // Anzeige
    #define pcf2 0b01000010 // Segmente 
    
    void long_delay(uint16_t ms){
        for(; ms>0; ms--) _delay_ms(1);
    }
    const char Zahl[] = {
        0b01000100, 
        0b01111101, 
        0b10100100, 
        0b00110100, 
        0b00011101, 
        0b00010110, 
        0b00000110, 
        0b01111100, 
        0b00000100, 
        0b00010100
    };
    void twi_send( unsigned char befehl ){
        i2c_start(pcf+I2C_WRITE);            
        i2c_write(befehl);                            
        i2c_stop();        
        
    }
    void twi_send2( unsigned char befehl1 ){
        i2c_start(pcf2+I2C_WRITE);            
        i2c_write(befehl1);                            
        i2c_stop();        
        
    }
    void ZeigeZahl(uint16_t Zahl4){
        
        char a_zahl1[5];
        snprintf(a_zahl1, sizeof(a_zahl1), "%d", Zahl4); 
        twi_send(0b1111110);
        twi_send2(Zahl[a_zahl1[0] - '0']);
        long_delay(8);
        twi_send2(0b11111111);    
        twi_send(0b1111101);
        twi_send2(Zahl[a_zahl1[1] - '0']);
        long_delay(8); 
        twi_send2(0b11111111);   
        twi_send(0b1111011);
        twi_send2(Zahl[a_zahl1[2] - '0']);
        long_delay(8); 
        twi_send2(0b11111111); 
        twi_send(0b1110111);
        twi_send2(Zahl[a_zahl1[3] - '0']);
        long_delay(8);
        twi_send2(0b11111111);  
    }
    
    int main(void)
    {         
      i2c_init();                                
    
      while(1)
      {  
         ZeigeZahl(1234);
      }
      return 0;
    }
    So, aber wie kann die M32 dem mega8 jetzt sagen, was er zeigen soll?

    edit:
    habe die plantine verkleinert, damit ich sie unter der normalen exp. verstecken kann.
    hier noch ein (handy-) Foto: (habe meine richte cam gerade nicht hier)

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

Name:	DSC00095.jpg
Hits:	12
Größe:	45,4 KB
ID:	20340
    Geändert von AsuroPhilip (22.10.2011 um 17:22 Uhr) Grund: Foto

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Der Master speichert die Segmentmuster der Ziffern und schickt sie endlos an den Anzeigeslave? So war das doch nicht gedacht, oder? Der Master schickt einmalig die Ziffernfolge und der Slave steuert endlos die entsprechenden Segmente an.

    Das Bild ist leider sehr unscharf, ich kann den Sockel für den Mega8 gar nicht erkennen. Was macht der Taster?
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Ich sagte ja Handycam. Sockel hatte ich keinen mehr . Der Taster ist Reset. Die drei Stiftleisten sind zum programmiern. Rechts kommen noch Servostecker.

    der Code oben ist vom mega8. also ich hab mir das so vorgestellt:

    M32 sendet einmalig die Zahl(z.B. 1234) an den mega8, der speichert dann 1234 in eine Variable und führt dann immer das aus: ZeigeZahl(Variable); und sobald eine neue Zahl kommt wieder von vorn.

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Das ist der Code vom Mega8? Spielt da immer noch der PCF mit? Der Mega8 kann doch die Segmente selbst ansteuern.

    Ächz:

    #define pcf 0b01000110 // Anzeige
    #define pcf2 0b01000010 // Segmente
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    Ja schon, aber das ist

    1. viel arbeit wieder alles umzulöten
    2. bei mir gerade nicht möglich, weil bei meiner lötstation eben die lötkolbenheizung kaputt gegangen ist (wird nicht heiß), Ersatz-Lötkolben ist bestellt.

    geht es so nicht?

    der mega8 steuert die pcf´s

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    27.07.2010
    Ort
    Aachen ---- NRW
    Beiträge
    251
    okay, sobald ich wieder löten kann, lass ich den mega8 die Segmente steuern. Welche Pins soll ich benutzen, oder ist das egal?

  7. #7
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    der mega8 steuert die pcf´s
    Dadurch wird der Bus dauerhaft belegt. Deshalb vermutlich auch deine Probleme beim gleichzeitigen Ansteuern des RP6 mit dem m32. Dein Mega8 ist nämlich auch Master (für den PCF) und deshalb kollidieren die Daten (vermutlich).

    Belegt sind für IR-Kommunikation und I2C: PB3 (OC2), PD0 (Rxd), PD1 (TxD), PC4 (SDA), PC5 (SCL) und PC6 (Reset).

    Bleiben übrig:

    14 - PB0 - ICP1
    15 - PB1 - OC1A
    16 - PB2 - OC1B
    (IR) 17 _ PB3 - OC2
    18 - PB4 - MISO
    19 - PB5 - SCK
    09 - PB6 - XTAL1
    10 - PB7 - XTAL2

    23 - PC0 - ADC0
    24 - PC1 - ADC1
    25 - PC2 - ADC2
    26 - PC3 - ADC3
    (I2C) 27 - PC4 - SDA
    (I2C) 28 - PC5 - SCL
    (RES) 01 - PC6 - RESET

    (IR) 02 - PD0 - RxD
    (IR) 03 - PD1 - TXD
    04 - PD2 - INT0
    05 - PD3 - INT1
    06 - PD4 - XCK
    11 - PD5 - T1
    12 - PD6 - AIN0
    13 - PD7 - AIN0

    07 - VCC
    08 - GND
    20 - AVCC
    21 - AREF
    22 - GND (ADC)

    Gruß

    mic
    Geändert von radbruch (24.10.2011 um 11:09 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Noch ein Clone...
    Von kritias im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 24.04.2011, 21:39
  2. gewichtsbelastung des rp6 zusätzlich
    Von roboterheld im Forum Robby RP6
    Antworten: 4
    Letzter Beitrag: 28.09.2007, 13:22
  3. Debounce Tasterabfrage + zusätzlich Zeitabfrage = Wie ???
    Von Papsi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 0
    Letzter Beitrag: 23.09.2007, 14:52
  4. LCD an einen Mega8 der an einem Mega8 hängt wie?
    Von Naxos im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 10.03.2006, 13:45
  5. Funk-Kamera zusätzlich mit IR-LEDs nachrüsten?
    Von kautz im Forum Sensoren / Sensorik
    Antworten: 10
    Letzter Beitrag: 01.10.2005, 22:45

Berechtigungen

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

12V Akku bauen