Thông báo
Collapse
No announcement yet.
Cùng nhau trao đổi về STM8
Collapse
X
-
Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
-
vắc xin lên blog của itx lấy nguyên con họ hàng IAR về.Nguyên văn bởi queduong Xem bài viếtThì 8K code cũng phải viết được vô tư chứ , chú test hộ anh cái chương trình này rồi đóng gói project hộ anh cái
, cái máy 2 ngày nay bị bọn vi rút tứ tung ... Hay là vắc xin phản tác dụng rồi !
( IAR đang dùng bản 1.41 - 1.42 vắc xin download ở trang của Tàu Khựa ) trước dùng bình thường mà giờ thì ...
!
Code:/* Includes ------------------------------------------------------------------*/ #include "stm8s.h" #include "stdio.h" #include "stm8s_uart1.h" #include "stm8s_clk.h" #include "stm8s_gpio.h" int putchar (int c); // functions Putchar --> UART int getchar (void); // functions Getchar --> UART char echo; void main(void) { /*High speed internal clock prescaler: 1*/ CLK_DeInit(); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //f_Master = HSI/1 = 16MHz CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); //f_CPU = f_Master/1 = 16MHz while(CLK_GetFlagStatus(CLK_FLAG_HSIRDY)!=SET); //wait until HSI ready GPIO_DeInit(GPIOA); GPIO_Init(GPIOA, GPIO_PIN_3, GPIO_MODE_OUT_PP_HIGH_FAST); UART1_DeInit(); /* UART1 configuration ------------------------------------------------------*/ /* UART1 configured as follow: - BaudRate = 9600 baud - Word Length = 8 Bits - One Stop Bit - No parity - Receive and transmit enabled - UART1 Clock disabled */ UART1_Init((uint32_t)9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TXRX_ENABLE); while (1) { echo = getchar(); printf("%c", echo); GPIO_WriteReverse(GPIOA, GPIO_PIN_3); //Toggle LED } } /////////////////////// Functions ///////////////////////////////// int putchar (int c) { // Write a character to the UART1 UART1_SendData8(c); // Loop until the end of transmission while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET); return (c); } /////////////////// int getchar (void) { int c = 0; // Loop until the Read data register flag is SET while (UART1_GetFlagStatus(UART1_FLAG_RXNE) == RESET); c = UART1_ReceiveData8(); return (c); }
Cảm ơn trước !
Xài đồ Tàu Khựa còn than gì ?Từ chối trách nhiệm:
Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
Blog: http://mritx.blogspot.com
Comment
-
Đã thử cái ở blog itx ... sau khi active ngon lành cành phở ... nhưng kết quả không khả quan. bó tay.Nguyên văn bởi itx Xem bài viếtvắc xin lên blog của itx lấy nguyên con họ hàng IAR về.
Xài đồ Tàu Khựa còn than gì ?
Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
dientuqueduong@yahoo.comNguyên văn bởi designer Xem bài viếtHi anh Quế Dương, em có 1 cái, anh inbox cho em cái mail của anh đi, em bắn qua!hihi
Have fun!
Thanks !
( Mình đã kiểm tra lại toàn bộ, khi viết code trực tiếp thì dung lượng code nhỏ hơn rất nhiều lần . ( nhưng rất cực nhọc ), khi dùng thư viện thì nhàn hơn và bị ngốn gần hết ROM ( mặc dù chỉ dùng mỗi chức năng UART demo như đã mô tả ở trên.) ( trước đây không bị tình trạng này) chỉ sau khi cài lại máy tính và download thư viện từ trang ST về !!!
Nếu bạn có STM8S_StdPeriph_Driver gửi kèm cho mình 1 bộ ( có thể vấn đề nằm ở trong cái này )Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Kiểm tra thấy cứ dùng lệnh printf là nó ngốn rất nhiều rom. bó tay , dùng cosmic thì lại không bị
không biết có phải set option gì để khi dùng lệnh printf nó không bị tràn ROM không ? Chưa bao giờ dùng cái trình dịch nào sử dụng cái lệnh printf nó lại thế này !
( Các bác có ý kiến gì góp ý ! )Last edited by queduong; 30-07-2014, 11:49.Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
printf lib để full như thế thì hao rom là phải.Nguyên văn bởi queduong Xem bài viếtKiểm tra thấy cứ dùng lệnh printf là nó ngốn rất nhiều rom. bó tay , dùng cosmic thì lại không bị
không biết có phải set option gì để khi dùng lệnh printf nó không bị tràn ROM không ? Chưa bao giờ dùng cái trình dịch nào sử dụng cái lệnh printf nó lại thế này !
( Các bác có ý kiến gì góp ý ! )
vào library options mà chỉnh lại printtf và scantf , thường để auto cho nó tự chọn nếu không xác định mình cần gì.
hình chụp code của qd do itx bien dịch thử
Grand Total: 3 467Từ chối trách nhiệm:
Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
Blog: http://mritx.blogspot.com
Comment
-
( Có thể gửi cho anh 1 bản cài và cái bộ thư viện để test không ? )Nguyên văn bởi hoangdai Xem bài viết[ATTACH=CONFIG]89087[/ATTACH][ATTACH]89086[/ATTACH]
Tặng anh Dương, e build nguyên cục của anh có thế này thôi
.
Hi hi, của anh nó ra tới tận hơn 7,5K code
, em để ý mất 2,2K cho 1 cái UART echo là quá lớn. ( Nếu không dùng lệnh printf nó còn nhỏ hơn nữa ), nếu chọn Tối ưu code ( chế độ High ) trong Options nó còn nhỏ hơn được nữa đó. Và nếu không dùng thư viện mà truy suất trực tiếp API thì nó còn nhỏ hơn nữa ... ( cả cái UART gửi / nhận chỉ tốn có vài trăm byte ) ... chứ không đến hàng KB ( Rõ ràng ở đây là dịch chưa tối ưu !!! )
--- Đây là hình ảnh chụp lại bộ nhớ Khi sử dụng lệnh printf("%c", echo); và không sử dụng lệnh printf mà thay bằng putchar(echo);
( Code mã nguồn đã post ở các bài trước ).
1) Khi sử dụng lệnh printf
( Để ý con số 7688 ---> gần hết bộ nhớ ! )
2) Không sử dụng lệnh printf thay vào đó lệnh gọi hàm putchar ( để ý thấy có 1748 ... và có thể code thêm công việc khác do còn nhiều bộ nhớ )
3) Trường hợp cuối : Không sử dụng printf , sử dụng putchar + set Optimizations trong Options ( chọn tối ưu size mức cao nhất ) ( chỉ mất 1503 byte )
( Em thử thay printf("%c",echo) bằng putchar(echo) xem cái bản em dùng nó tối ưu đến đâu !?Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Thanks bác đã chia sẻ nhưng trước mình đã thử chỉnh lại từ full , auto , small , tiny ... nó đều không khỏi bệnhNguyên văn bởi itx Xem bài viếtprintf lib để full như thế thì hao rom là phải.
vào library options mà chỉnh lại printtf và scantf , thường để auto cho nó tự chọn nếu không xác định mình cần gì.
hình chụp code của qd do itx bien dịch thử
[ATTACH]89094[/ATTACH]
Grand Total: 3 467
. Trước đây mình đã viết và chạy bình thường ( gồm nhiều cả uart, adc ... trong đó ) ... từ cái hôm bị virut giờ nó bị như vậy mà chưa tìm được cách sửa !
( Xem cái hình bài trước đó , cứ dùng printf ở chế độ nào cũng không có tác dụng ... có lần đang chạy thì windows báo lỗi gì đó ( màn hình đen) vụt qua rất nhanh, lúc sau báo lỗi thiếu file vc_red.msi gì đó ( mà chẳng liên quan gì đến chương trình IAR ??? )
--- CHắc phải ghost lại win thử xem ( vì hệ điều hành của mình giờ thỉnh thoảng bị lỗi treo máy ( treo explorer stop working ) !!! Chắc nó bị lỗi nặng rồi nên phần mềm cũng bị vạ lây !Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Em đi ghost lại win đây xem thế nào ! Thanks các bác !Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
file .map nó liệt kê đầy đủ hết. ( mấy cái file như xprintfsmall.o )Nguyên văn bởi queduong Xem bài viếtThanks bác đã chia sẻ nhưng trước mình đã thử chỉnh lại từ full , auto , small , tiny ... nó đều không khỏi bệnh
. Trước đây mình đã viết và chạy bình thường ( gồm nhiều cả uart, adc ... trong đó ) ... từ cái hôm bị virut giờ nó bị như vậy mà chưa tìm được cách sửa !
( Xem cái hình bài trước đó , cứ dùng printf ở chế độ nào cũng không có tác dụng ... có lần đang chạy thì windows báo lỗi gì đó ( màn hình đen) vụt qua rất nhanh, lúc sau báo lỗi thiếu file vc_red.msi gì đó ( mà chẳng liên quan gì đến chương trình IAR ??? )
--- CHắc phải ghost lại win thử xem ( vì hệ điều hành của mình giờ thỉnh thoảng bị lỗi treo máy ( treo explorer stop working ) !!! Chắc nó bị lỗi nặng rồi nên phần mềm cũng bị vạ lây !
dùng full = 4 kb
dùng small = 1.5 kb
dùng tiny = 500 b
tất cả thư viện printf của iar đều là biên dịch sẵn kích cỡ là cố định với từng phiên bản IAR mà nó theo, kích thước không bao giờ thay đổi với bất kì set Optimizations nào, không bị ảnh hưởng bởi trình dịch.
ghost lại win = vô dụngTừ chối trách nhiệm:
Mọi thông tin từ ITX cung cấp với hi vọng nó có ích và không đi kèm với bất kì sự bảo đảm nào.
Blog: http://mritx.blogspot.com
Comment
-
Về thư viện printf thì bác nói đúng, mình đã thử nếu để full nó sẽ ngốn nhiều ROM, để auto , tiny, small nó tốn ít rom hơn nhiều nhưng ở trên cái máy mà bị lỗi mình nói đã thử printf ở các chế độ full , auto , small ... mà nó vẫn chui ra cái kích thước khổng lồ đó. ( Trước đây mình có viết chương trình dùng ADC, UART và SPI + EEProm ) đã dịch chạy ngon lành ... giờ muốn nâng cấp nên mở ra sửa và không tài nào dịch được nữa ( báo tràn code ), sau khi test thử 1 chương trình UART đơn giản, xem bộ nhớ thì thấy gần hết .Nguyên văn bởi itx Xem bài viếtfile .map nó liệt kê đầy đủ hết. ( mấy cái file như xprintfsmall.o )
dùng full = 4 kb
dùng small = 1.5 kb
dùng tiny = 500 b
tất cả thư viện printf của iar đều là biên dịch sẵn kích cỡ là cố định với từng phiên bản IAR mà nó theo, kích thước không bao giờ thay đổi với bất kì set Optimizations nào, không bị ảnh hưởng bởi trình dịch.
ghost lại win = vô dụng
Dùng Total uninstall để gỡ bỏ, cài lại ... giờ thì win nó báo lỗi chẳng thèm cho cài IAR nữa luôn ! ( trình AntiSpyware thì đang cài lại kêu " chit" một phát phát hiện ra con Trojan gì đó ! ở cái STice driver )
đúng là đến bó tay ...
Cũng bộ cài đó + K ey mang cài vào cái máy bàn chạy XP thì lại ngon lành, chạy code UART ở trên có chưa đến 2K ( cài xong, active offline như đã hướng dẫn ) và cứ thế dùng ... chạy phe phé mà chẳng cần chọn mấy cái Options linh linh ( ngoại trừ chọn chip ).
Thực sự là không biết lỗi nó nằm ở đâu ???, win bị lỗi nên đành phải ghost lại .Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
Thấy các bác thảo luận chủ đề hay quá mà em không thể ngồi yên như mọi lần được. Chả là em cũng làm cái uart printf, cả trên STVD và IAR thì nó bị tình trạng như sau:
Trến STVD thì printf chữ bình thường, nhưng cho tham số vào thì nhảy theo quy luật sai bét. ví dụ %u, i mà i là uint8_t, nó in ra 386
. Khi êm chuyển qua IAR thì không bị nữa. Các bác cho em hỏi là file map mình xem ở đâu ạ?
Comment
-
Comment
Bài viết mới nhất
Collapse
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi bqvietBqv cáo lỗi vì chưa đủ khả năng diễn giải để người đọc hiểu. Người làm kỹ thuật sâu đôi khi như thế đó. Về việc nạp pin không vào dù cell mới, khả năng cái mạch quản lý đó đã hỏng - cũng chính là nguyên nhân đám cell cũ hỏng từ đầu.
-
Channel: Thiết bị điện tử cá nhân
hôm nay, 17:17 -
-
Trả lời cho Xin hỏi về mạch thu FM/AM trong catsettebởi nguyendinhvanTheo tôi, nó chỉ là cái Tuy- ê - nơ, hoặc là khối Trung Văn Tần, nó một phần trong cái Da đì ô thôi. Vì có thấy một chỗ có ba chân hàn, giiống như chân Cờ rít sờ tăng 455 ki nô hẹc. Còn khối Tuy ê nơ thì không nhìn thây cái Di ốt Va di cáp...
-
Channel: Điện thanh
Hôm qua, 19:59 -
-
Trả lời cho Đấu tắt điện cho máy tính bảngbởi afrendlyCó vẻ ngoài hiểu biết của mình rồi. Cuối cùng mình quyết định tìm mua 2 pin trên Shopee, giá 200K thay vào. Tuy nhận pin được 1%, sạc mãi không vào nhưng cũng mở được máy lên. Vậy cũng tạm. Cảm ơn bạn đã hỗ trợ nhé....
-
Channel: Thiết bị điện tử cá nhân
04-12-2025, 01:27 -
-
Trả lời cho Máy điện châm ?bởi nick22Đúng như bạn nói, máy điện châm hiện nay trên thị trường đã khá đa dạng về mẫu mã, chức năng và giá thành.
-
Channel: Điện tử y sinh
01-12-2025, 13:23 -
-
Trả lời cho Làm thế nào để check IC LM358bởi thetungĐể check IC sống hay chết thì đơn giản : bạn lắp cái mạch ( khuếch đại hoặc dao động ) chạy bằng con IC đó ,nhưng vị trí IC thì lắp cái đế .... thế là cứ cắm rút thì biết . Còn không thì kiếm cái này : https://shopee.vn/Xu-M%C3%A1y-ki%E1%...di-%C4%91%E1%B...
-
Channel: Hướng dẫn tìm thông tin linh kiện
28-11-2025, 14:34 -
-
bởi ngochung90Tình hình là em có mua mạch 3s về để hàn vào khối pin 12v, hàn xong em đo tại các chân từ B-, B1, B2, B+ thì điện áp pin vẫn đủ 12,6v, nhưng tại 2 chân ra P- P+ thì đo chỉ được 6,3v là bị sao các bác, và chân P- P + này đồng thời là chân sạc xả thì mình cắm sạc xả cùng lúc được ko ạ
...-
Channel: Điện tử dành cho người mới bắt đầu
28-11-2025, 10:32 -
-
Trả lời cho Làm thế nào để check IC LM358bởi nguyendinhvanViệc đó tùy thuộc trình độ khoa học kỹ thuật công nghệ ứng dụng hiện tại thôi.
Trong datasheet,họ đưa ra nhiều thông số. Tùy theo khả năng , và những thông số họ cần, họ sẽ kiểm tra casc số đo có khớp với số liệu trong datasheet...-
Channel: Hướng dẫn tìm thông tin linh kiện
27-11-2025, 18:00 -
-
bởi kqbn9091Em có mạch AT89s8253 đang cần sửa số serial no của CHIP mà giờ lâu quá rồi không dùng keil nên không biết phải làm sao, trong khi chỉ còn file hex. Mạch nạp thì progris khi viết không sửa được số serial của IC. Rất cần bác nào còn làm về 89...
-
Channel: Vi điều khiển họ 8051
27-11-2025, 11:13 -
). Máy anh đang dùng win7 32 bit !
Comment