Go Down

Topic: Probleme beim POV Globus (Read 934 times) previous topic - next topic

selektrik87

Hallo Leute,

beschäftige mich nun schon seit einiger Zeit mit dem Thema Arduino und habe selbst ein UNO Board, wo der Atmel Atmega328P verbaut ist. Nun habe ich nach dieser Anleitung http://code.google.com/p/povglobe/ einen Globus gebaut.
Habe mir auch das Programm heruntergeladen.
Bei Fragen würde ich es auch Posten.

Nun zu meiner Frage.
Beim Überspielen von der Arduino Programmieroberfläche auf das Board bekomme ich folgenden Fehler:
"
avrdude: verification error, first mismatch at byte 0x0500
         0xff != 0x27
avrdude: verification error; content mismatch "

Was hat das zu bedeuten?
In der Google-Suche sprachen einige von dem Bootloader, welcher die falschen Fuses setzt?!
Hat von diesem Fehler jemand eine Ahnung und wie man ihn beheben kann?
Wäre euch dankbar, wenn ihr Anregungen hättet.

Liebe Grüße
selektrik

Gurkengraeber

#1
Jul 22, 2011, 06:32 pm Last Edit: Jul 22, 2011, 06:38 pm by Gurkengraeber Reason: 1
Hallo selektrik87 !

"Fischen nach Komplimenten" heißt das !

Sieht ja wahnsinnig gut aus das Teil !

Quote
Bei Fragen würde ich es auch Posten.


LOS !
Quote
Beim Überspielen von der Arduino Programmieroberfläche auf das Board bekomme ich folgenden Fehler:
"
avrdude: verification error, first mismatch at byte 0x0500
         0xff != 0x27
avrdude: verification error; content mismatch "


Passiert das auch, wenn du Windows / Linux neustartest, und danach die Arduino-Umgebung mit dem Programm lädst ?
Sieht nach Java-Fehler aus. Von Java habe ich allerdings 0,1 Ahnung.

Mach mal ein Video davon. Bitte !

MfG


Gurkengraeber


selektrik87

Video folgt am Montag ;)
Wenn es funktioniert, ist es sicherlich "Fishing for...." :D
Aber bis dahin, ist es nur ein sich drehender Metallklotz ;)

Also hier mal der Quelltext des Programms, welche ich von der Google Project Seite kopiert habe:

die eigentliche .pde

Code: [Select]
#include "WProgram.h"

#include <avr/pgmspace.h>

#include "Defines.h"

//#include "Test.h"

#include "World72PixelBMPData.h"

//#include "Pumpkin.h"

//#include "World2BitmapReverse.h"

//#include "TestImage1.h"

#include "Globals.h"

#include "HackADaySmall.h"

//#include "Us.h"

void setup()
{
// Serial.begin(9600);

CurrentColumns = ImageColumns;

  pinMode(SpinInput, INPUT);
 
  lastImageChange = millis();
  lastSpinTime = micros();

  pinMode(col0, OUTPUT);
  pinMode(col1, OUTPUT);
  pinMode(col2, OUTPUT);
  pinMode(col3, OUTPUT);
  pinMode(col4, OUTPUT);
  pinMode(col5, OUTPUT);
  pinMode(col6, OUTPUT);
  pinMode(col7, OUTPUT);
  pinMode(col8, OUTPUT);

  pinMode(row0, OUTPUT);
  pinMode(row1, OUTPUT);
  pinMode(row2, OUTPUT);
  pinMode(row3, OUTPUT);
  pinMode(row4, OUTPUT);
  pinMode(row5, OUTPUT);
  pinMode(row6, OUTPUT);
  pinMode(row7, OUTPUT);

  Clear();
 
  //ALL ON
  for(int j = 0; j < ImageRows; j++)
  {
     for(int j = 0; j < ImageRows; j++)
    {
      digitalWrite(pins[j][0], LEDOrientation);
      digitalWrite(pins[j][1], !LEDOrientation);
    }
    digitalWrite(pins[j][0], !LEDOrientation);
    digitalWrite(pins[j][1], LEDOrientation);
    delay(30);
  }
 
  attachInterrupt(SpinInterrupt, spinInterrupt, FALLING);

}

bool inInterrupt = false;
unsigned long spinTime = 0;
void spinInterrupt()
{
  if(lastSpinTime == 0)
  {
    lastSpinTime = micros();
    return;
  }
  if(!inInterrupt && micros() - lastSpinTime > inturruptDebounce)
  {
    inInterrupt = true;
    unsigned long newSpinTime = micros() - lastSpinTime;
   
    if(spinTime != 0 && (newSpinTime > spinTime*2 || newSpinTime < spinTime/2))
    {
      inInterrupt = false;
      return;
    }
    spinTime = newSpinTime;
   
    if(millis() - lastImageChange > ImageDisplayTime)
    {
        lastImageChange = millis();
        image++;
        if(image > 1)
        {
          image = 0;
        }
        switch(image)
        {
        case 0:
          CurrentColumns = ImageColumns;
        case 1:
           CurrentColumns = Image2Columns;
        }
        spinCount = 0;
    }
   
    microsPerPixelColumn = spinTime / CurrentColumns;
    microsPerPixelEight = microsPerPixelColumn / LEDEights;
   
   
    spinCount++;
    if(spinCount > 20)
    {
      columnOffset++;
      if(columnOffset >= CurrentColumns)
      {
        columnOffset = 0;
      }
      spinCount = 0;
    }
   
   
   
    column = columnOffset;
    LEDEight = 0;
   
    lastSpinTime = micros();
    inInterrupt = false;
  }
}

void loop()
{
  for(column = 0; column < CurrentColumns; column++)
  {
    for(LEDEight = 0; LEDEight < LEDEights ; LEDEight++)
    {
      DrawLEDGroupsAtOnce(LEDEight, column);
    }
    //delayMicroseconds(microsPerPixelColumn);
  }

}

void Clear()
{
  for(int j = 0; j < ImageRows; j++)
  {
    digitalWrite(pins[j][0], LEDOrientation);
    digitalWrite(pins[j][1], !LEDOrientation);
  }
}


char GetImageLEDEights(int eight, int column)
{
  switch(image)
  {
  case 0:
    return pgm_read_byte(&(Image[column][eight]));
  case 1:
     return pgm_read_byte(&(Image2[column][eight]));
  }
}

void DrawLEDGroupsAtOnce(int eight, int column)
{
  //digitalWrite(eightpins[lastEightOn][1], LEDOrientation);
 
  prog_uint8_t imageEights = GetImageLEDEights(eight, column);
 
  PORTB = (PORTB | B00110000) & ((imageEights << 4) | B11001111);
  PORTC = (PORTC | B00111111) & ((imageEights >> 2) | B11000000);
   
  digitalWrite(eightpins[eight][1], !LEDOrientation);
 
  if(microsPerPixelEight > 20)//18
  {
    delayMicroseconds(microsPerPixelEight - 20);//18
  }
 
  digitalWrite(eightpins[eight][1], LEDOrientation);
  //lastEightOn = eight;
}



nun folgt die defines.h

Code: [Select]
#define SpinInterrupt 0
#define SpinInput 2

#define col0 3
#define col1 4
#define col2 5
#define col3 6
#define col4 7
#define col5 8
#define col6 9
#define col7 10
#define col8 11
//#define col9 12

#define row0 12
#define row1 13
#define row2 14
#define row3 15
#define row4 16
#define row5 17
#define row6 18
#define row7 19
//#define row7 20
//#define row8 21
//#define row9 22

#define LEDOrientation true

#define LEDEightsCount 9

#define ImageDisplayTime 60000


weiteres folgt...

selektrik87

und die globals.h

Code: [Select]
volatile unsigned long microsPerPixelColumn = 10000;
volatile unsigned long microsPerPixelEight = 0;
volatile unsigned long lastSpinTime = 0;
unsigned long lastColumnTime = 0;

unsigned long lastImageChange = 0;

volatile int column = 0;
volatile int row = 0;
volatile int LEDEight = 0;

volatile int CurrentColumns = 0;

volatile int image = 0;

int lastEightOn = 0;

int columnOffset = 0;
int spinCount = 0;

unsigned long inturruptDebounce = 80;

int eightpins[8][2] = {{row0, col0}, {row1, col1}, { row2, col2}, {row3, col3}, {row4, col4}, {row5, col5}, {row6, col6}, {row7, col7}};

int pins[72][2] = {{col0, row0},
                   {col0, row1},
                   {col0, row2},
                   {col0, row3},
                   {col0, row4},
                   {col0, row5},
                   {col0, row6},
                   {col0, row7},
//                    {col0, row8},
//                    {col0, row9},
                 
                   {col1, row0},
                   {col1, row1},
                   {col1, row2},
                   {col1, row3},
                   {col1, row4},
                   {col1, row5},
                   {col1, row6},
                   {col1, row7},
//                    {col1, row8},
//                    {col1, row9},
                 
                   {col2, row0},
                   {col2, row1},
                   {col2, row2},
                   {col2, row3},
                   {col2, row4},
                   {col2, row5},
                   {col2, row6},
                   {col2, row7},
//                    {col2, row8},
//                    {col2, row9},
                 
                   {col3, row0},
                   {col3, row1},
                   {col3, row2},
                   {col3, row3},
                   {col3, row4},
                   {col3, row5},
                   {col3, row6},
                   {col3, row7},
//                    {col3, row8},
//                    {col3, row9},
                 
                   {col4, row0},
                   {col4, row1},
                   {col4, row2},
                   {col4, row3},
                   {col4, row4},
                   {col4, row5},
                   {col4, row6},
                   {col4, row7},
//                    {col4, row8},
//                    {col4, row9},
                 
                   {col5, row0},
                   {col5, row1},
                   {col5, row2},
                   {col5, row3},
                   {col5, row4},
                   {col5, row5},
                   {col5, row6},
                   {col5, row7},
//                    {col5, row8},
//                    {col5, row9},
                 
                   {col6, row0},
                   {col6, row1},
                   {col6, row2},
                   {col6, row3},
                   {col6, row4},
                   {col6, row5},
                   {col6, row6},
                   {col6, row7},
//                    {col6, row8},
//                    {col6, row9},
                 
                   {col7, row0},
                   {col7, row1},
                   {col7, row2},
                   {col7, row3},
                   {col7, row4},
                   {col7, row5},
                   {col7, row6},
                   {col7, row7},
//                    {col7, row8},
//                    {col7, row9},
                 
                   {col8, row0},
                   {col8, row1},
                   {col8, row2},
                   {col8, row3},
                   {col8, row4},
                   {col8, row5},
                   {col8, row6},
                   {col8, row7},
//                    {col8, row8},
//                    {col8, row9},
                 
//                    {col9, row0},
//                    {col9, row1},
//                    {col9, row2},
//                    {col9, row3},
//                    {col9, row4},
//                    {col9, row5},
//                    {col9, row6},
//                    {col9, row7},
//                    {col9, row8},
//                    {col9, row9}
                   };
                 





habe nun etwas weiter gesucht. Habe festgestellt das ich den gleichen Atmel wie in der Bauanleitung habe... Werde am Montag dazu kommen, das Video zu posten und die Idee mit der Java-Oberfläche zu verfolgen. Wäre ja toll, wenn es nur daran liegen würde.

Grüße,
selektrik

Go Up