- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: Kameramodul

  1. #11
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo

    Da ich sehr selten in Bascom programmiere (zuletzt beim Nunchuk) fehlen mir natürlich ein paar Grundlagen. Immerhin hat es trotzdem auf Anhieb funktioniert (die Bascom-Profis dürfen natürlich lachen):
    Code:
    'Analoge Kamera an ATMega32 (RP6)                                    30.3.09 mic
    
    
    $regfile = "M32def.dat"                                     ' RP6 mit Mega32
    $crystal = 8000000                                          ' taktet mit 8MHz
    $baud = 38400                                               ' Loader-Baud
    
    Dim X As Byte
    Dim S As String * 30                                        'max 30 Positionen
    
    Config Adc = Free , Prescaler = Auto , Reference = Avcc     ' Dummy-Setup!!!
    
    ' ADC interne Referenz 2,56V, Ergebniss linksbündig, Kanal ADC4 (E_INT1)
    ' Admux =(1 << Refs1) |(1 << Refs0) |(1 << Adlar) | 4
    
    Admux = 0
    Set Admux.refs1
    Set Admux.refs0
    Set Admux.adlar
    Set Admux.2                                                 'Kanal 4
    'Set Admux.1
    'Set Admux.0
    
    ' setze free running triggern
    '  Sfior =(0 << Adts2) |(0 << Adts1) |(0 << Adts0)
    Sfior = 0
    
    ' kein Interupt, Wandler einschalten, prescaller /2
    '  Adcsra =(0 << Adie) |(1 << Aden) |(0 << Adps2) |(0 << Adps1) |(1 << Adps0)
    ' Autotriggern bedeutet jetzt free running aktivieren, altes Flag löschen
    '  Adcsra | =(1 << Adate) |(1 << Adif)
    ' Initialisierung starten
    '  Adcsra | =(1 << Adsc)
    
    Adcsr = 0
    Set Adcsr.aden
    Set Adcsr.adps0
    
    Set Adcsr.5                                                 'adate
    Set Adcsr.adif
    
    Set Adcsr.adsc
    
    Start Adc
    
    Do
    'Cli();
       Disable Interrupts
    ' / / Auf Bildanfang Warten
    'Do
       Do
    ' {
    '  i=0;
       X = 0
    '  while (ADCH > 30);
          While Adch > 30
          Wend
    '  while (ADCH < 50) i++;
          While Adch < 50
             Incr X
          Wend
    ' } while (i < 40);
       Loop Until X > 40
    '   // die ersten 50 Zeilen überlesen
    '  i=50;
       X = 50
    ' while (i--)
       While X > 0
    ' {
    '  while (ADCH > 30);
          While Adch > 30
          Wend
    '  while (ADCH < 50);
          While Adch < 50
          Wend
          Decr X
       Wend
    ' }
    '   // warten auf hell-dunkel-Übergang
    '   i=0;
       X = 0
    ' while (ADCH > 70) i++;
       While Adch > 65                                          'Hell/Dunkel-Schwelle
         Incr X
       Wend
    '   sei();
       Enable Interrupts
    
       Print X ;
       S = Space(x)
       Print S;
       Print "***"
       Waitms 200
    Loop
    
    End
    So kann ich im Moment ca. 23 Positionen des Striches unterscheiden:
    Bild hier  
    http://www.youtube.com/watch?v=H-p-W9r-_Vk

    Nett, oder?

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    die auskommentierten Zeilen machens dann doch etwas unübersichtlich ...
    hier mal etwas gekürzt und bereinigt :

    Code:
    'Analoge Kamera an ATMega32 (RP6)                                    30.3.09 mic
    
    
    $regfile = "M32def.dat"                                     ' RP6 mit Mega32
    $crystal = 8000000                                          ' taktet mit 8MHz
    $baud = 38400                                               ' Loader-Baud
    
    Dim X As Byte
    Dim S As String * 30                                        'max 30 Positionen
    
    Config Adc = Free , Prescaler = Auto , Reference = Avcc     ' Dummy-Setup!!!
    
    Admux = 0
    Set Admux.refs1
    Set Admux.refs0
    Set Admux.adlar                                             'ausrichtung links (adch) für 8-bit
    Set Admux.2                                                 'Kanal 4
    'Sfior = 0
    ' eventuell besser für andere Funktionen:
    Sfior = Sfior And &B00011111                                ' adts2=0 adts1=0 adts0=0
    Adcsr = 0
    Set Adcsr.aden                                              'ADC Enable
    Set Adcsr.adps0                                             ' ADC Prescaler Select Bits (2)
    
    Set Adcsr.5                                                 'adate (ADC Auto Trigger Enable)
    Set Adcsr.adif                                              'ADC Interrupt Flag
    
    Set Adcsr.adsc                                              'ADC Start Conversion
    
    Start Adc
    
    Do
       Disable Interrupts
    ' / / Auf Bildanfang Warten
       Do
       X = 0
          While Adch > 30
          Wend
          While Adch < 50
             Incr X
          Wend
       Loop Until X > 40
       X = 50
       While X > 0
          While Adch > 30
          Wend
          While Adch < 50
          Wend
          Decr X
       Wend
       X = 0
       While Adch > 65                                          'Hell/Dunkel-Schwelle
         Incr X
       Wend
       Enable Interrupts
       Print X ;
       S = Space(x)
       Print S;
       Print "***"
       Waitms 200
    Loop
    
    End
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Sieht gut aus.
    Hier wird keiner lachen, solange es funktioniert!

    Scheint nur etwas langsam zu gehen? Liegt das an Bascom oder anderen Einflüssen?

  4. #14
    Neuer Benutzer Öfters hier
    Registriert seit
    06.06.2011
    Beiträge
    15
    Huhu, grabt den Thread mal wieder aus; istt ein interessantes Thema!

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