Jump to content
ELFORUM - Forumul electronistilor

Programare ARM


Guest mihail.stoica

Recommended Posts

Guest mihail.stoica

Buna ziua

 

Vin din zona microcontrolere PIC16F.., PIC18F.. asa ca la ARM sunt pifan.

Pentru ATSAM4SD32 (procesor ARM Cortex4 de la Atmel) cu ce device il programez (bootloader, program) ?

 

Multumesc anticipat

Link to comment
  • Replies 7
  • Created
  • Last Reply

Top Posters In This Topic

  • aureliu67

    3

  • nico_2010

    2

  • ratza

    1

  • merck

    1

Top Posters In This Topic

Pag. 267 din DS:

"The SAM4 series microcontrollers feature a number of complementary debugand test capabilities. The Serial Wire/JTAG Debug Port (SWJ-DP) combining a Serial Wire Debug Port (SW-DP) and JTAG Debug (JTAG-DP) portis used for standard debugging functions, such as downloading code and single-stepping through programs. It alsoembeds a serial wire trace."

Link to comment

Părerea mea e că un programator cu debugger e extrem de indicat. Deşi nu e ieftin, eu aş merge pe un SAM-ICE.

Link to comment
  • 6 years later...

Buna ziua. Deranjez din nou cu intrebari "primitive". Am reusit sa instalez bootloaderul la  STM 32 blue pill, am reusit sa aprind ledurile ca sa verific daca am folosit corect comenzile pt portul respectiv dar acum urmeaza sa citesc datele de la ADC si sa le compar pentr a efectua operatii logice. Ultima parte nu stiu de ce nu functioneaza. Posibil pt ca comenzile pt STM sunt diferite de cele ale Arduino . Mentionez ca folosesc Arduino IDE pt ca pt altceva nu ma tin "curelile" 

codul este mai jos

 


const int analogInput1 = PA9;

const int analogInput2 = PA10;
void setup()
{ pinMode(PB1, OUTPUT);
 pinMode(PB2, OUTPUT);
lcd.clear();
}
void loop()
{
int analogVal1 = analogRead(analogInput1);
int analogVal2 = analogRead(analogInput2);
if (analogVal1>analogVal2) digitalWrite(PB2, LOW);
delay (300);
digitalWrite(PB1, HIGH);

delay (300);
if (analogVal2>analogVal1) digitalWrite(PB1, LOW);
delay (300);
digitalWrite(PB2, HIGH);
delay (300);
digitalWrite(PB2, LOW);
delay (3000);
}

Link to comment

Am corectat programul si am conectat la pinii corespunzatori. Dar tot nu vrea sa mearga.

const int analogInput1 = PA0;

const int analogInput2 = PA1;
void setup()
{ pinMode(PB1, OUTPUT);
 pinMode(PB2, OUTPUT);
}
void loop()
{
int analogVal1 = analogRead(analogInput1);
int analogVal2 = analogRead(analogInput2);
if (analogVal1>analogVal2) digitalWrite(PB2, LOW);
delay (300);
digitalWrite(PB1, HIGH);

delay (300);
if (analogVal2>analogVal1) digitalWrite(PB1, LOW);
delay (300);
digitalWrite(PB2, HIGH);
delay (300);
digitalWrite(PB2, LOW);
delay (3000);
}

 

Edited by aureliu67
Link to comment
const int analogInput1 = PA0;
const int analogInput2 = PA1;

void setup()
{
  pinMode(PB1, OUTPUT);
  pinMode(PB2, OUTPUT);
}

void loop()
{
  int analogVal1 = analogRead(analogInput1);
  int analogVal2 = analogRead(analogInput2);

  if (analogVal1 > analogVal2)
  {
    digitalWrite(PB2, LOW);
    delay(300);
    digitalWrite(PB1, HIGH);
    delay(300);
    digitalWrite(PB1, LOW);
  }
  else if (analogVal2 > analogVal1)
  {
    digitalWrite(PB1, LOW);
    delay(300);
    digitalWrite(PB2, HIGH);
    delay(300);
    digitalWrite(PB2, LOW);
    delay(3000);
  }
}

 

Link to comment

Multumesc, acum raspunde la senzor. Am testat cu unul singur, si unul lipsa (defect), dar are efect. O sa incerc cu2 senzori sa vad daca este corecta decizia. Am mai gasit o gresala la porturile de iesire. Ramasese ca in prima varianta demo fara sa fi modificat pt placa mea  B8 si B9.

  

const int analogInput1 = PA0;
const int analogInput2 = PA1;

void setup()
{
  pinMode(PB8, OUTPUT);
  pinMode(PB9, OUTPUT);
}

void loop()
{
  int analogVal1 = analogRead(analogInput1);
  int analogVal2 = analogRead(analogInput2);

  if (analogVal1 > analogVal2)
  {
    digitalWrite(PB9, LOW);
    delay(300);
    digitalWrite(PB8, HIGH);
    delay(300);
    digitalWrite(PB8, LOW);
      delay(1000);
  }
  else if (analogVal2 > analogVal1)
  {
    digitalWrite(PB8, LOW);
    delay(300);
    digitalWrite(PB9, HIGH);
    delay(300);
    digitalWrite(PB9, LOW);
    delay(1000);
  }
}

Multumesc, credeam ca comenzile ar fi diferite din motiv ca am incarcat PC 13 ca sa pornesc ledul placutei si nu a mers, insa a mers cand am ales portul B9 sau B8.. Credeeam ca la fel este si cu analogRead/// 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines