programming for hardwarians

17
ينلعتادي البرمجة ل

Upload: yahya-tawil

Post on 24-Jun-2015

113 views

Category:

Education


1 download

DESCRIPTION

البرمجة للعتاديين

TRANSCRIPT

Page 1: Programming for hardwarians

البرمجة للعتاديين

Page 2: Programming for hardwarians

محتوى اليوممراجعة عن الردوينو (المداخل و المخارج ، السجل ت ، الذواكر )

)HDL – parallel languages – C -ROTSلغا ت البرمجة العتادية (

المكونا ت الساسية ل ي لغة و حل برمجي .

استخدام البرمجة العتادية لحل مشكلة عتادية (مثال أول : القاطعة – مثال )seven segmentالثاني : قيادة

نصائح عملية عند كتابة الكود البرمجي في العتاد .

Page 3: Programming for hardwarians

Digital PINs

Analog digital converter ADC PINs

crystal

Atmega328BootloaderProgrammed with hex file

Page 4: Programming for hardwarians
Page 5: Programming for hardwarians

PinMode(10,INPUT);ي العادية داخل هذه التعليمة

سبلغة ال

DDRB |= 0X08 ;

Page 6: Programming for hardwarians
Page 7: Programming for hardwarians

Flash التنفيذي البرنامج لتوضع ذاكرة

المتحكم على

Page 8: Programming for hardwarians

x

SRAM بعض و المتحولت لتوضع ذاكرة

التنفيذ أثناء المتغيرة الأمور

Page 9: Programming for hardwarians

الذواكر

قراءة / كتابة التستخدام قابلية التليشي الذاكرة

( تنفيذ ( قراءة( البرنامج ( حرق كتابة

التنفيذي البرنامج متلشية غير flash

( تنفيذ ( قراءة( البرنامج ( حرق كتابة

الثابتة المعطيات متلشية غير EEPROM

كتابة و قراءة متلشية المتحولت SRAM

Page 10: Programming for hardwarians

لغات البرمجة العتادية الرخرى

Assembly .HDL .Parallel languages .C language .Embedded systems & RTOS .

http://concurrency.cc/

Hex + avrdude

http://www.bertos.org/

Page 11: Programming for hardwarians

المكونا ت الرئيسية ل ي لغة برمجية

Page 12: Programming for hardwarians
Page 13: Programming for hardwarians
Page 14: Programming for hardwarians

const int buttonPin = 2;

int buttonState;

int lastButtonState = LOW;

long lastDebounceTime = 0;

long debounceDelay = 50;

void setup() {

pinMode(buttonPin, INPUT);

}

lastButtonState = reading;

}void loop() {

int reading = digitalRead(buttonPin);

if (reading != lastButtonState) {

lastDebounceTime = millis();

}

if ((millis() - lastDebounceTime) > debounceDelay) {

if (reading != buttonState) {

buttonState = reading;

} }

Page 15: Programming for hardwarians

#define a 8

byte seven_seg_digits[10][7] = {//a,b,c,d,e,f,g { 1,1,1,1,1,1,0 }, // = 0 { 0,1,1,0,0,0,0 }, // = 1 { 1,1,0,1,1,0,1 }, // = 2 { 1,1,1,1,0,0,1 }, // = 3 { 0,1,1,0,0,1,1 }, // = 4 { 1,0,1,1,0,1,1 }, // = 5 { 1,0,1,1,1,1,1 }, // = 6 { 1,1,1,0,0,0,0 }, // = 7 { 1,1,1,1,1,1,1 }, // = 8 { 1,1,1,0,0,1,1 } // = 9 };

void setup() { //debug ledpinMode(9,OUTPUT);

//7 seg outputspinMode(a,OUTPUT); //apinMode(7,OUTPUT); //bpinMode(6,OUTPUT); //cpinMode(5,OUTPUT); //dpinMode(4,OUTPUT); //epinMode(3,OUTPUT); //fpinMode(2,OUTPUT); //g

//switch inputpinMode(9,INPUT);

}

}

void segdisply(byte num) { byte pin=2 ; for (byte segCount = 6; segCount < 0; --segCount) { digitalWrite(pin, seven_seg_digits[num][segCount]); ++pin; } /* }void loop() { delay(10000); segdisply(2);

7 seg driver

Page 16: Programming for hardwarians

H-bridge

Page 17: Programming for hardwarians

التنفيذ .1نصيحة # قبل التخطيط

النمطية .2نصيحة #

الأجايل .3نصيحة #

التطوير .4نصيحة # و التعديل قابلية

الملحظات .5نصيحة # و التوثيق