programming for hardwarians
DESCRIPTION
البرمجة للعتاديينTRANSCRIPT
البرمجة للعتاديين
محتوى اليوممراجعة عن الردوينو (المداخل و المخارج ، السجل ت ، الذواكر )
)HDL – parallel languages – C -ROTSلغا ت البرمجة العتادية (
المكونا ت الساسية ل ي لغة و حل برمجي .
استخدام البرمجة العتادية لحل مشكلة عتادية (مثال أول : القاطعة – مثال )seven segmentالثاني : قيادة
نصائح عملية عند كتابة الكود البرمجي في العتاد .
Digital PINs
Analog digital converter ADC PINs
crystal
Atmega328BootloaderProgrammed with hex file
PinMode(10,INPUT);ي العادية داخل هذه التعليمة
سبلغة ال
DDRB |= 0X08 ;
Flash التنفيذي البرنامج لتوضع ذاكرة
المتحكم على
x
SRAM بعض و المتحولت لتوضع ذاكرة
التنفيذ أثناء المتغيرة الأمور
الذواكر
قراءة / كتابة التستخدام قابلية التليشي الذاكرة
( تنفيذ ( قراءة( البرنامج ( حرق كتابة
التنفيذي البرنامج متلشية غير flash
( تنفيذ ( قراءة( البرنامج ( حرق كتابة
الثابتة المعطيات متلشية غير EEPROM
كتابة و قراءة متلشية المتحولت SRAM
لغات البرمجة العتادية الرخرى
Assembly .HDL .Parallel languages .C language .Embedded systems & RTOS .
http://concurrency.cc/
Hex + avrdude
http://www.bertos.org/
المكونا ت الرئيسية ل ي لغة برمجية
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;
} }
#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
H-bridge
التنفيذ .1نصيحة # قبل التخطيط
النمطية .2نصيحة #
الأجايل .3نصيحة #
التطوير .4نصيحة # و التعديل قابلية
الملحظات .5نصيحة # و التوثيق