G
GrandAlf
Guest
لدي القليل من مشكلة ، والتوليف التالي يعمل غرامة ، ولكن عندما أحاول أن وظيفة من وظائف محتويات كتلة ، تجمع ، ولكن لن يتم تشغيل.
قدم ملف دعا CancelCall.C
واضاف محتويات الكتلة تتميز بوظائف
وشملت At898252 ، والتأخير ورؤوس lcd
قدم ملف CancelCall.H
واضاف
خارجي CancelCall باطلة (باطل) ؛
وأضاف CancelCall.h إلى الملف الرئيسي.
تجمع موافق ، ولكن لن يتم تشغيل.لا يزال التعليم جيم ، وربما فعلت شيئا غبيا.أي مساعدة في تقدير كبير.
آسف عن تناول الكثير من عرض النطاق الترددي.
=============================================
# تشمل <AT898252.h>
# تشمل <rtx51tny.h>
# تشمل "lcd.h"
# تشمل <stdio.h>
# تشمل "delay.h"
/ / بت المخرجات
sbit بقيادة P1 = ^ 7 ؛
sbit C1 = P2 ^ 6 ؛
sbit C2 = P2 ^ 5 ؛
sbit C3 = P2 ^ 4 ؛
sbit أسلم ^ 2 = P3 ؛
sbit BusyOp ^ 3 = P3 ؛
sbit نغمات P3 ^ = 4 ؛
sbit الإصدار P3 ^ = 5 ؛
sbit AudVid = P3 ^ 6 ؛
الستروب الوماض sbit = P3 ^ 7 ؛
/ / بت إسهامات نشطة منخفض
sbit PTE = P2 ^ 7 ؛
sbit TradeClock ^ P1 = 6 ؛
sbit الخصوصية P1 = ^ 7 ؛
sbit OpenDoor = P3 ^ 0 ؛
sbit BusyIp = P3 ^ 1 ؛
/ / المتغيرات
غير موقعة DialNumber تشار ، KeyRead ؛
int ActualNumber غير موقعة ؛
غير موقعة تشار العنوان ؛
غير موقعة تشار الحلقة ؛
تشار buf [8] ؛
/ / وظائف
////////////////////////////////////////////////// //////////////////////////////
الفراغ CancelCall (الفراغ) / / يعيد جميع صناديق تقاطع
(
غير موقعة تشار العنوان ؛
القوية = 1 ؛
معالجة = 0 ؛
نغمة = 0 ؛
lcd_goto (0) ؛
lcd_puts ( "نهاية الرجاء الإنتظار") ؛
AudVid = 0 ؛ BusyOp = 1 ؛
DelayMs (200) ؛
القوية = 0 ؛ DelayUs (50)
؛ الستروب الوماض = 1 ؛
DelayMs (50) ؛
في حين أن (العنوان <255) (
p0 = العنوان ؛
القوية = 0 ؛ DelayUs (50)
؛ الستروب الوماض = 1 ؛
DelayMs (20) ؛
معالجة ؛)
lcd_goto (0) ؛
lcd_puts ( "اطلب رقم") ؛
)
////////////////////////////////////////////////// ////////////////////////////job0 () _task_ 0 (/ / بدء العمل الرئيسية
os_create_task (1)
و / / رويترز يبدأ الروتينية ار
lcd_init () ؛
DialNumber = 0 ؛
KeyRead = 0 ؛
ActualNumber = 0 ؛
أسلم = 0 ؛
CancelCall () ؛
في حين أن (1) (
قاد = 0 ؛
DelayMs (200) ؛
قاد = 1 ؛
DelayMs (200) ؛
C1 = 0 ؛ C2 = 0 ؛ C3 = 0 ؛
في حين أن ((P2 & 0x0F) == 0x0F) () / / في انتظار الرئيسية الصحافة
C1 = 0 ؛ C2 = 1 ؛ C3 = 1 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 1 ؛
إذا كان (KeyRead == 13) DialNumber
= 4 ؛
إذا كان (KeyRead == 11) DialNumber
= 7 ؛
إذا كان (KeyRead == 7) / / اعادة
(
DialNumber = 0 ؛
KeyRead = 0 ؛
ActualNumber = 0 ؛
C1 = 1 ؛ C2 = 1 ؛ C3 = 1 ؛
lcd_goto (0) ؛
lcd_puts ( "اطلب رقم") ؛
)
C1 = 1 ؛ C2 = 0 ؛ C3 = 1 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 2 ؛
إذا كان (KeyRead == 13) DialNumber
= 5 ؛
إذا كان (KeyRead == 11) DialNumber
= 8 ؛
إذا كان (KeyRead == 7) DialNumber
= 0 ؛
C1 = 1 ؛ C2 = 1 ؛ C3 = 0 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 3 ؛
إذا كان (KeyRead == 13) DialNumber
= 6 ؛
إذا كان (KeyRead == 11) DialNumber
= 9 ؛
إذا كان (KeyRead == 7) (/ / نداء الرئيسية بت هذا الخطأ ، وينبغي ألا تلغي الكلمة
ActualNumber = 0 ؛
DialNumber = 0 ؛
KeyRead = 0 ؛
CancelCall () ؛)
ActualNumber = (ActualNumber * 10) DialNumber ؛
إذا كان (ActualNumber> 0) (
lcd_clear () ؛
lcd_puts ( "الرقم") ؛
lcd_goto (0x09) ؛
sprintf (buf ، "٪ د" ، ActualNumber) ؛
lcd_puts (buf) ؛)
C1 = 0 ؛ C2 = 0 ؛ C3 = 0 ؛
في حين أن ((P2 & 0x0F)! = 0x0F) () / / في انتظار الإصدار الرئيسية
os_wait (K_TMO ، 5،0) ؛))
//================================================ =====
/ / الشيكات PTE وتفتح الباب أيضا البقول تحويلة الرقابة
job1 () (_task_ 1
حلقة = 0 ؛ الإصدار = 0 ؛
في حين أن (1) (
في حين أن (PTE == 1) (
أسلم = 0 ؛ DelayMs (50) ؛ أسلم = 1 ؛ DelayMs (50) ؛ أسلم = 0 ؛ / / لتغيير ةديسلا 1
os_wait (K_TMO ، 30،0) ؛)
/ / بيان احتياجات الصوت هنا ، عندما مكتوب
في حين أن (الحلقة <20) (
الإفراج = 1 ؛
أسلم = 0 ؛ DelayMs (50) ؛ أسلم = 1 ؛ DelayMs (50) ؛ أسلم = 0 ؛ / / لتغيير ةديسلا 1
DelayMs (255) ؛
حلقة ؛)
حلقة = 0 ؛ الإصدار = 0 ؛))
//================================================ =====
قدم ملف دعا CancelCall.C
واضاف محتويات الكتلة تتميز بوظائف
وشملت At898252 ، والتأخير ورؤوس lcd
قدم ملف CancelCall.H
واضاف
خارجي CancelCall باطلة (باطل) ؛
وأضاف CancelCall.h إلى الملف الرئيسي.
تجمع موافق ، ولكن لن يتم تشغيل.لا يزال التعليم جيم ، وربما فعلت شيئا غبيا.أي مساعدة في تقدير كبير.
آسف عن تناول الكثير من عرض النطاق الترددي.
=============================================
# تشمل <AT898252.h>
# تشمل <rtx51tny.h>
# تشمل "lcd.h"
# تشمل <stdio.h>
# تشمل "delay.h"
/ / بت المخرجات
sbit بقيادة P1 = ^ 7 ؛
sbit C1 = P2 ^ 6 ؛
sbit C2 = P2 ^ 5 ؛
sbit C3 = P2 ^ 4 ؛
sbit أسلم ^ 2 = P3 ؛
sbit BusyOp ^ 3 = P3 ؛
sbit نغمات P3 ^ = 4 ؛
sbit الإصدار P3 ^ = 5 ؛
sbit AudVid = P3 ^ 6 ؛
الستروب الوماض sbit = P3 ^ 7 ؛
/ / بت إسهامات نشطة منخفض
sbit PTE = P2 ^ 7 ؛
sbit TradeClock ^ P1 = 6 ؛
sbit الخصوصية P1 = ^ 7 ؛
sbit OpenDoor = P3 ^ 0 ؛
sbit BusyIp = P3 ^ 1 ؛
/ / المتغيرات
غير موقعة DialNumber تشار ، KeyRead ؛
int ActualNumber غير موقعة ؛
غير موقعة تشار العنوان ؛
غير موقعة تشار الحلقة ؛
تشار buf [8] ؛
/ / وظائف
////////////////////////////////////////////////// //////////////////////////////
الفراغ CancelCall (الفراغ) / / يعيد جميع صناديق تقاطع
(
غير موقعة تشار العنوان ؛
القوية = 1 ؛
معالجة = 0 ؛
نغمة = 0 ؛
lcd_goto (0) ؛
lcd_puts ( "نهاية الرجاء الإنتظار") ؛
AudVid = 0 ؛ BusyOp = 1 ؛
DelayMs (200) ؛
القوية = 0 ؛ DelayUs (50)
؛ الستروب الوماض = 1 ؛
DelayMs (50) ؛
في حين أن (العنوان <255) (
p0 = العنوان ؛
القوية = 0 ؛ DelayUs (50)
؛ الستروب الوماض = 1 ؛
DelayMs (20) ؛
معالجة ؛)
lcd_goto (0) ؛
lcd_puts ( "اطلب رقم") ؛
)
////////////////////////////////////////////////// ////////////////////////////job0 () _task_ 0 (/ / بدء العمل الرئيسية
os_create_task (1)
و / / رويترز يبدأ الروتينية ار
lcd_init () ؛
DialNumber = 0 ؛
KeyRead = 0 ؛
ActualNumber = 0 ؛
أسلم = 0 ؛
CancelCall () ؛
في حين أن (1) (
قاد = 0 ؛
DelayMs (200) ؛
قاد = 1 ؛
DelayMs (200) ؛
C1 = 0 ؛ C2 = 0 ؛ C3 = 0 ؛
في حين أن ((P2 & 0x0F) == 0x0F) () / / في انتظار الرئيسية الصحافة
C1 = 0 ؛ C2 = 1 ؛ C3 = 1 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 1 ؛
إذا كان (KeyRead == 13) DialNumber
= 4 ؛
إذا كان (KeyRead == 11) DialNumber
= 7 ؛
إذا كان (KeyRead == 7) / / اعادة
(
DialNumber = 0 ؛
KeyRead = 0 ؛
ActualNumber = 0 ؛
C1 = 1 ؛ C2 = 1 ؛ C3 = 1 ؛
lcd_goto (0) ؛
lcd_puts ( "اطلب رقم") ؛
)
C1 = 1 ؛ C2 = 0 ؛ C3 = 1 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 2 ؛
إذا كان (KeyRead == 13) DialNumber
= 5 ؛
إذا كان (KeyRead == 11) DialNumber
= 8 ؛
إذا كان (KeyRead == 7) DialNumber
= 0 ؛
C1 = 1 ؛ C2 = 1 ؛ C3 = 0 ؛
KeyRead = (P2 & 0x0F) ؛
إذا كان (KeyRead == 14) DialNumber
= 3 ؛
إذا كان (KeyRead == 13) DialNumber
= 6 ؛
إذا كان (KeyRead == 11) DialNumber
= 9 ؛
إذا كان (KeyRead == 7) (/ / نداء الرئيسية بت هذا الخطأ ، وينبغي ألا تلغي الكلمة
ActualNumber = 0 ؛
DialNumber = 0 ؛
KeyRead = 0 ؛
CancelCall () ؛)
ActualNumber = (ActualNumber * 10) DialNumber ؛
إذا كان (ActualNumber> 0) (
lcd_clear () ؛
lcd_puts ( "الرقم") ؛
lcd_goto (0x09) ؛
sprintf (buf ، "٪ د" ، ActualNumber) ؛
lcd_puts (buf) ؛)
C1 = 0 ؛ C2 = 0 ؛ C3 = 0 ؛
في حين أن ((P2 & 0x0F)! = 0x0F) () / / في انتظار الإصدار الرئيسية
os_wait (K_TMO ، 5،0) ؛))
//================================================ =====
/ / الشيكات PTE وتفتح الباب أيضا البقول تحويلة الرقابة
job1 () (_task_ 1
حلقة = 0 ؛ الإصدار = 0 ؛
في حين أن (1) (
في حين أن (PTE == 1) (
أسلم = 0 ؛ DelayMs (50) ؛ أسلم = 1 ؛ DelayMs (50) ؛ أسلم = 0 ؛ / / لتغيير ةديسلا 1
os_wait (K_TMO ، 30،0) ؛)
/ / بيان احتياجات الصوت هنا ، عندما مكتوب
في حين أن (الحلقة <20) (
الإفراج = 1 ؛
أسلم = 0 ؛ DelayMs (50) ؛ أسلم = 1 ؛ DelayMs (50) ؛ أسلم = 0 ؛ / / لتغيير ةديسلا 1
DelayMs (255) ؛
حلقة ؛)
حلقة = 0 ؛ الإصدار = 0 ؛))
//================================================ =====