Các bạn à tôi viết bài này mong các bạn hãy cố gắng.Tôi thấy cái luồng này chẳng có một ai gọi là tâm huyết cả.Nếu các bạn có khả năng hãy làm các bài thật basic từ led đơn này ,7 thanh rồi phím bấm,ngắt ngoài,timer...các bạn hãy post lên cả sơ đồ mạch nữa như thế sẽ tốt cho người mới vô cùng những người mới học.Kiến thức của tôi còn hạn hẹp quá nhưng nếu sau này tôi làm được chắc chắn tôi sẽ post tặng cho các bạn.Hãy chia sẻ để được chia sẻ các bạn ạ.Đó là điều mà tôi muốn kêu gọi.Chúc mọi người thành công với PSoC.
Thông báo
Collapse
No announcement yet.
Gửi những người mới và người cũ
Collapse
X
-
Gửi những người mới và người cũ
Xin đóng góp một project về ngắt ngoài GPIO.
//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------
//Bai toan nay thuc hanh nhu sau
//Binh thuong Psoc o trang thai ngu yen de tiet kiem nang luong
//Khi co muc 1 vao chan P15(ngat GPIO) thi PSoC thuc day va khi do no cho phep SLEEP timer hoat dong
//Cu 1s SLEEP timer ngat 1 lan khi nao duoc 60s thi no bat xung P1? len muc 1
//Realtime tuong doi nho bo tao dao dong 32768Hz ben trong
//----------------------------------------------------------------------------
#include <m8c.h> // part specific constants and macros
#define LED_START 0x01
// P20
#define LED_STOP 0x02
// P21
//P20=1--Den Start tat,--0 sang
//P21=1--Den Stop tat,--0 sang
//P25,P26=1--Day xung ra muc 1
#pragma interrupt_handler SleepISR
#pragma interrupt_handler PSoC_GPIO_ISR
void Delay_e(unsigned int t);
BYTE sleepTimer=0; void main()
{
//Turn off LED_START and LED_STOP20=1,p21=1
PRT2DR|=(LED_START|LED_STOP);//2 den tat
PRT2DR&=0x9F;//P25,26=0 xung xuong 0
//------------------------------------------------
INT_MSK0 |= INT_MSK0_GPIO;
M8C_ClearWDTAndSleep; //Clear sleep timer mask
M8C_EnableGInt; //Enable global interrupts
while(1)
{
M8C_Sleep; //CPU goes to sleep
//Wakes up on sleep timer interrupt
//Toggles LED2, counts down and returns
}
}
//**********************************////////////
//Cong thuc nhu sau sleepTimer=(T/1.66)*2+1
//Gia su T=60 thi sleepTimer=73,28~=73
/////*******************************/////////////
void SleepISR(void){
PRT2DR^=LED_START; // Toggle LED_START
sleepTimer++; // Dec timer
if(sleepTimer==73)
{
M8C_DisableIntMask (INT_MSK0,INT_MSK0_SLEEP); PRT2DR&=~LED_STOP;//P21=0--Den Stop sang
PRT2DR|=0x60;//P25,P26=1--Day xung ra muc 1 }
else
{
M8C_ClearWDTAndSleep; // Reset sleep timer
}
}
///**********************//
void PSoC_GPIO_ISR(void){//P12 In
unsigned int temp,temp1,temp2;
temp=PRT1DR;
temp&=0x04;
Delay_e(5);
temp1=PRT1DR;
temp1&=0x04;
Delay_e(5);
temp2=PRT1DR;
temp2&=0x04;
if((temp==temp1)&&(temp==temp2)&&(temp==0x04
{
M8C_EnableIntMask(INT_MSK0, INT_MSK0_SLEEP
}
}
//***********************//
void Delay_e(unsigned int t)
{
while(t--);
}Technical Institutes
Mobile: 0983278725
Email:
-
Đếm lên đếm xuống
Tôi mới vào PSoC định làm: khi ấn vào 1 nút đếm lên thì cộng 1 đơn vị , khi ấn vào nút đếm xuống thì trừ đi 1 đơn vị hiện số ra đèn 7 thanh. Mong được sự tham gia giúp đỡ của người đi trước như ý kiến hay của mục này. Thks
Comment
-
Nguyên văn bởi learn90 Xem bài viếtTôi mới vào PSoC định làm: khi ấn vào 1 nút đếm lên thì cộng 1 đơn vị , khi ấn vào nút đếm xuống thì trừ đi 1 đơn vị hiện số ra đèn 7 thanh. Mong được sự tham gia giúp đỡ của người đi trước như ý kiến hay của mục này. Thks
Chào bạn, tôi đã thử làm cái này dùng bộ counter nhưng ko thành công. Tôi ko hiểu tại sao. Tôi dùng bộ cuonter8 và dùng 1 chân ngoài nối với 1 nút ấn, Tín hiệu ấn sẽ được nối qua các kết nối toàn cục và nối tới clock của bộ đếm, khi đó chế độ của chân mặc định là High Z mà không thể thay đổi được. Tôi muốn mỗi lần có xung ấn thì giá trị bộ đếm giảm đi 1 rồi tôi đọc giá trị của thanh ghi đếm tức thời ra hiển thị lên led7 thanh. Nhưng sao tôi thấy nó ko nhận được tín hiệu ngoài, các thông số đặt theo các ví dụ của cypress. Bạn có cùng mối quan tâm thì chúng ta trao đổi. Các cao thủ ai có thời gian xin giúp em cái này với. Em mới làm cái đầu tiên về nó mà ko được nên nản lắm. Cần được trao đổi và sự giúp đỡ của các cao thủ. CÙng nhau cố gắng cùng nhau tiến bộ. Thân!
Comment
-
Bạn hãy xem lại cái thiết lập counter của mình xem,chắc là vấn đề cái counter này thôi chứ Led 7seg thì không vấn đề phải không.Bạn nên nhớ rằng bạn dùng phím bấm(1 tín hiệu mang đầy tính chất cơ khí sẽ có dung sóc..vv..) để đưa vào clock là không ổn !-->>không nên thực hiện bài thực hành này !
Bạn hãy tham khảo 1 đoạn quét phím!
----------------------------------------------------------
char Getkey(void)
{
char key,i,temp;
PRT1DR|=0x07;
key=PRT1DR&0x07; // Mask off high bit
Delay(2);
temp=PRT1DR&0x07;
i=0x07;
if((key=temp)&&(key!=i))
{
temp=0x06;//P10
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp)
return 0x04; // Key 1 is pressed
Delay(2);
}
return 0x08;
} // Key 1 is hold_down
temp=0x05;//P11
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp)
return 0x03; // Key 2 is pressed
Delay(2);
}
return 0x07;
} // Key 2 is hold_down
temp=0x03;//p12
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp) // Key 3 is pressed
return 0x02;
Delay(2);
}
return 0x06;
} // Key 3 is hold_down
// temp=0x07;
// if(key==temp)
// {
// for(i=0;i<=15;i++)
// {
// temp=PRT1DR&0x0F;
// if(key!=temp)
// return 0x01; // Key 4 is pressed
// Delay(2);
// }
// return 0x05;
// } // Key 4 is hold_down
} // No key is pressed
return 0x00;
}Last edited by process; 08-09-2008, 16:26.Technical Institutes
Mobile: 0983278725
Email:
Comment
-
Nguyên văn bởi process Xem bài viếtBạn hãy xem lại cái thiết lập counter của mình xem,chắc là vấn đề cái counter này thôi chứ Led 7seg thì không vấn đề phải không.Bạn nên nhớ rằng bạn dùng phím bấm(1 tín hiệu mang đầy tính chất cơ khí sẽ có dung sóc..vv..) để đưa vào clock là không ổn !-->>không nên thực hiện bài thực hành này !
Bạn hãy tham khảo 1 đoạn quét phím!
----------------------------------------------------------
char Getkey(void)
{
char key,i,temp;
PRT1DR|=0x07;
key=PRT1DR&0x07; // Mask off high bit
Delay(2);
temp=PRT1DR&0x07;
i=0x07;
if((key=temp)&&(key!=i))
{
temp=0x06;//P10
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp)
return 0x04; // Key 1 is pressed
Delay(2);
}
return 0x08;
} // Key 1 is hold_down
temp=0x05;//P11
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp)
return 0x03; // Key 2 is pressed
Delay(2);
}
return 0x07;
} // Key 2 is hold_down
temp=0x03;//p12
if(key==temp)
{
for(i=0;i<=15;i++)
{
temp=PRT1DR&0x07;
if(key!=temp) // Key 3 is pressed
return 0x02;
Delay(2);
}
return 0x06;
} // Key 3 is hold_down
// temp=0x07;
// if(key==temp)
// {
// for(i=0;i<=15;i++)
// {
// temp=PRT1DR&0x0F;
// if(key!=temp)
// return 0x01; // Key 4 is pressed
// Delay(2);
// }
// return 0x05;
// } // Key 4 is hold_down
} // No key is pressed
return 0x00;
}
Cảm ơn CT của bạn, bạn có thể viết thêm các dòng giải thích cho dễ hiểu 1 chut ko bạn. Như CT của bạn ở trên ấy.
Ví dụ như:
//----------------------------------------------------------------------------
// C main line
//----------------------------------------------------------------------------
//Bai toan nay thuc hanh nhu sau
//Binh thuong Psoc o trang thai ngu yen de tiet kiem nang luong
//Khi co muc 1 vao chan P15(ngat GPIO) thi PSoC thuc day va khi do no cho phep SLEEP timer hoat dong
//Cu 1s SLEEP timer ngat 1 lan khi nao duoc 60s thi no bat xung P1? len muc 1
//Realtime tuong doi nho bo tao dao dong 32768Hz ben trong
//----------------------------------------------------------------------------
#include <m8c.h> // part specific constants and macros
#define LED_START 0x01
// P20
#define LED_STOP 0x02
// P21
//P20=1--Den Start tat,--0 sang
//P21=1--Den Stop tat,--0 sang
//P25,P26=1--Day xung ra muc 1
#pragma interrupt_handler SleepISR
#pragma interrupt_handler PSoC_GPIO_ISR
=============//**********************************////////////
//Cong thuc nhu sau sleepTimer=(T/1.66)*2+1
//Gia su T=60 thi sleepTimer=73,28~=73
v..v..
====================================
Vì mới vọc PSoC mà.
- Rung sóc giải quyết thế nào?
- Sau đó đếm thì thế nào?
Comment
-
Đoạn code này đơn giản với lại mình viết lâu rồi nên quên không chú thích,mình khuyên bạn nên tự làm một cái kít hoặc là mua có nhiều chức năng rồi thực hành dần là nhanh nhất,vừa đỡ tốn kém mà lại dễ học,bạn nên học từng module một:
- Counter,Timer
- Phím nhấn,Led7seg,LCD
- A/D,D/A,adc ngoài (như con MCP3208)
- PWM,I2C,UART...
Và đọc hết các bài viết trong luồng SoC,đấy là kinh nghiệm của mình !Technical Institutes
Mobile: 0983278725
Email:
Comment
-
Gửi Process
Nguyên văn bởi process Xem bài viếtĐoạn code này đơn giản với lại mình viết lâu rồi nên quên không chú thích,mình khuyên bạn nên tự làm một cái kít hoặc là mua có nhiều chức năng rồi thực hành dần là nhanh nhất,vừa đỡ tốn kém mà lại dễ học,bạn nên học từng module một:
- Counter,Timer
- Phím nhấn,Led7seg,LCD
- A/D,D/A,adc ngoài (như con MCP3208)
- PWM,I2C,UART...
Và đọc hết các bài viết trong luồng SoC,đấy là kinh nghiệm của mình !
Comment
-
Nguyên văn bởi learn90 Xem bài viếtNối phím ấn ví dụ với p10 và khi ấn thì tăng (hay giảm) 1 thì viết thế nào cao thủ ơi? Cứu vói!
Mình gợi ý: bạn cần một nút nhấn, 2 đèn led 7 đoạn.
Chi tiết xin tham khảo mạch đính kèm.
Viết phần mềm:
1. Cấu hình:
+tạo một project mới (ở đây mình viết cho 29466 bằng C). phần này mình chỉ hứong dẫn sơ thôi.
+Lựa chọn module LEG7SEG nhớ đổi tên LEG7SEG _1 lại thành LEG7SEG
+chuyển sang kết nối: bấm nút phải vào module LEG7SEG, chọn place.
+ chọn Segment port là port 2 tương ứng với sơ đồ mạch.
+ chọn digit port là port 1, chọn digit drive pins là 2 digits Px[4:5] tương ứng với chân p1.4 và p1.5 trên sơ đồ.
+ Vì là led CA nên các bạn chọn Digit Drive Polarity là Active High, Segment Drive Polarity là Active Low, và để Multiplex rate là 500hz (tham khảo user module để có thêm chi tiết).
Do PSoC designer không tự động chỉnh chế độ drive của hai chân P1.4 và p1.5 nên mình phải thực hiện bước chỉnh drive mode của hai chân này thành Strong.
+Đồng thời bạn còn phải chỉnh drive mode của P1.3 thành HighZ.
2. viết chương trình:
Code:#include <m8c.h> // part specific constants and macros #include "PSoCAPI.h" // PSoC API definitions for all User Modules void main() { int giatri=0; BYTE key,iskeypressed=0; LED7SEG_Start(); // Enable display M8C_EnableGInt; while (1) { //luu y: doan chuong trinh nay chua co chong nay phim key = PRT1DR & 0x08; //doc phim nhan if (!key) //neu co nhan phim { if (!iskeypressed) { iskeypressed=1; giatri++; if (giatri==100) giatri=0; } } else iskeypressed=0; //hien thi LED7SEG_DispInt(giatri, 1, 2); } }
Last edited by tiennguyenpy; 10-11-2008, 04:22.
Comment
-
Nguyên văn bởi learn90 Xem bài viếtTôi mới vào PSoC định làm: khi ấn vào 1 nút đếm lên thì cộng 1 đơn vị , khi ấn vào nút đếm xuống thì trừ đi 1 đơn vị hiện số ra đèn 7 thanh. Mong được sự tham gia giúp đỡ của người đi trước như ý kiến hay của mục này. ThksAttached FilesCUNG CẤP PSOC, MẠCH NẠP
CHUYỂN ĐỔI USB <-> RS485 AutoBaud
RS232 <-> RS485 MultiBaud
MẠCH NẠP USBPPI S7-200
Mobile: 0906076116
Email:
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Tiếng Anh cho người Việtbởi tuyennhanCái thư sai ngay câu chào Dear sir mới đúng Hi chỉ dùng cho người quen , các vấn đề về kỹ thuật nó không trả lời hoặc nói loanh quanh tránh ảnh hưởng đến công ty .
Giup1 người cần không giúp người không cần với lại văn mình vợ người nha đừng quên .-
Channel: Tâm tình dân kỹ thuật
hôm nay, 07:44 -
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamCám ơn những lời chúc tốt đẹp của em.
Việc em làm giống như chê sếp dốt, chẳng những không có miếng xôi nào để ăn mà còn chịu nhiều trù dập lên bờ , xuống ruộng.
Hãy tránh vết xe đổ của tui đi. Dành thời gian lo cho gia đình....-
Channel: Tâm tình dân kỹ thuật
hôm nay, 02:00 -
-
Trả lời cho Tiếng Anh cho người Việtbởi nhathung1101Ngoại ngữ là không thể thiếu, nhất là làm việc với công nghệ.
Nhưng học để tán gái hay để đọc datasheet, manual là chuyện cần quan tâm.
Và đọc ở nguồn nào đáng tin cậy, chứ cứ lên tictok hay facebook học lỏm thì...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 22:18 -
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Bác nói rất khách quan và chính xác. Ngoại ngữ là chìa khóa thăng tiến dù làm gì. Chả thế mà nay nước mình dạy tiếng Anh từ tiểu học.
Nhớ hồi năm 2006 em ra Hải Phòng, Hải Dương tìm việc, thời đó ở Bình Dương lương công...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 14:51 -
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Cảm ơn bạn, ĐT cũng có ý nghĩ như vậy.
Thực ra, lỗi của hãng đó ( gọi là hãng vì không chỉ một model sản phẩm) là về phần cứng, ĐT tuy không biết về lập trình phần mềm nhưng cũng thấy rằng sẽ chẳng khó khăn gì đáng...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 14:39 -
-
Trả lời cho Tiếng Anh cho người Việtbởi dinhthuong80Dạ, bác bảy mấy tuổi đời rồi cũng không kém bố cháu bao nhiêu. Tuổi nghề thì bác cũng đáng tuổi cha chú.
Nhưng 2 điều trên thì chưa hẳn đã đáng quí và đáng tôn trọng bằng việc bác rất nhiệt tình chia sẻ kinh nghiệm chuyên...-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 14:28 -
-
Trả lời cho Tiếng Anh cho người Việtbởi bqvietĐúng, nếu chú tâm thì chỉ cần mỗi tiếng Việt là đã khá đủ để làm đa số công việc thông thường, ở thời đại ngày nay khi tài liệu sách vở phương tiện thông tin liên lạc đã nhiều. Nhưng cũng chính ở thời nay giao lưu các nước nhiều...
-
Channel: Tâm tình dân kỹ thuật
21-02-2025, 20:26 -
-
Trả lời cho Tiếng Anh cho người Việtbởi mèomướpDạ cháu nghĩ chú dinh... cứ mạnh dạn gửi thư đi ạ, chú có thể gửi bằng văn bản in chuyển phát nhanh sẽ có giá trị hơn. Vấn đề chưa hẳn là cần hãng làm gì đó, mà chỉ đơn giản là mình cảm thấy nhẹ lòng vì đã làm những việc bản...
-
Channel: Tâm tình dân kỹ thuật
21-02-2025, 12:32 -
-
Trả lời cho Tiếng Anh cho người Việtbởi vi van phamNhững lần hắt hơi sổ mũi làm tôi mệt lã, phải dùng rượu uống để ngũ. Tôi cũng đang uống rượu 1 mình, viết vài dòng này cho em ( có lẽ dt chỉ bằng tuổi em tôi).
Dinh thuong dang đi vào vết xe đổ của tôi. Càng chứng minh, có...-
Channel: Tâm tình dân kỹ thuật
20-02-2025, 21:31 -
-
Trả lời cho Hỏi về cách hàn linh kiện ( giúp tớ với )bởi bqvietThiết nghĩ thi thoảng bác lên đây chia xẻ ít kinh nghiệm cũng vui rồi. Còn chuyện con người sinh lão bệnh tử là thường, sống cùng với quy luật đó thôi. Bqv nhớ trước đây bác từng kể về chuyện rang chì ô-xít bằng chảo để phục hồi bình điện, đấy cũng là thành quả đáng nể phục ở thời kỳ thiếu thốn đó.20-02-2025, 17:22
Comment