các bác cho em hỏi lập trình avr bằng c thì dùng phần mền nào ạ phần mền nào là tốt nhất
Thông báo
Collapse
No announcement yet.
dùng phần mền nào lập trình cho avr tốt nhất?
Collapse
X
-
Các phiên bản codevisionAVR mới gần đây có hiện tượng ko nhận chip trong mạch nạp các loại dù đã xxx mọi cách, có lẽ do nhà sx cố tình làm thế để ép người dùng mua bản quyền, vì thế hiện tại mình lập trình = codevision nhưng nạp code = avrstudio4 là ngon lành, vả lại trong hệ thống thiết lập fusebit của codevision khi mình chọn chip là ATMEGA8 thì ko thấy bit SPIEN, cái bit này cực quan trọng, trong khi đó avrstudio thì có đủ fusebit, cao thủ nào biết vụ này xin giải thích giúp (mình dùng Codevision 2.5.6 để các bác không nói mình dùng bản cũ nên thiếu này nọ).Làm sao mà bạn dám nói là không làm được khi bạn chưa từng thử một lần nào.
Ngay cả khi bạn đã làm 1 lần và thất bại bạn cũng không có quyền nói là không làm được vì bạn chưa làm lần thứ 2,3...
Comment
-
-Mới thì nên học codevison, biết chút đỉ thì chuyển sang AVRstudio với trình biện dịch WinAVR chính hãng luôn,các VD trong hocavr.com đều viết bằng thằng này, nên chiụ khó đọc sẽ rất dễ hiểu...
-Lúc trước mình cũng sài codevision, nhưng làm nhiều cái phức tạp codevison trở thành khó hiểu và khó sửa...
-Codevison dọn sẳng nhiều thứ, nhưng rồi đến một lúc tự nấu tự chế biến thì rất khó khăn..
-còn sài thằng nào là tùy mục đính và khả năng..
Comment
-
mình lâu không còn dùng CV nữa ... nhưng cái này chắc do dùng phần " tự tạo mã " wizard nó mới vậy ... chứ tự viết thì chẳng có gì là thừa cả !Nguyên văn bởi nguyentuanqs Xem bài viếtmình toàn dùng avrstudio. thư viện cho nó thì rất nhiều trên mạng. mà mình thấy nhiều khai báo trong codevision rối và phức tạp. nhiều cái không cần thiết cũng khai báo ra làm mình mò mỗi khi gặp lỗi rất khó chị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
-
chuẩn rồi đấy ạ.Nguyên văn bởi queduong Xem bài viếtmình lâu không còn dùng CV nữa ... nhưng cái này chắc do dùng phần " tự tạo mã " wizard nó mới vậy ... chứ tự viết thì chẳng có gì là thừa cả !
Comment
-
A [MENTION=45]queduong[/MENTION] ơi, xem hộ em cái này với ạ. em mò mà chưa nghĩ ra lỗi ở đâu . http://www.dientuvietnam.net/forums/...nh-voi-165156/
Nguyên văn bởi nguyentuanqs Xem bài viếtmình đang làm đề tài có liên quan đến tách dữ liệu ( giao thức NMEA trong thông tin vệ tinh sử dụng SIM các bạn nhé). đoạn mã có dạng : $GPGGA,002153.000,3342.6618,N,11751.3858,W,1,10,1. 2,27.0,M,34.2,M,,000 *5E. được truyền liên tiếp qua uart vào vi điều khiển. các đoạn mã có nội dung tương tự cũng được truyền tiếp theo. ví dụ thông tin truyền vào có thể có dạng :....$GPGGA,002153.000,3342.6618,N,11751.3858,W,1, 10,1.2,27.0,M,34.2,M,,000 *5E$GPGGA,5467.000,4578.6618,N,11751.5426,W,2,10,2 .2,12.0,M,376.2,M,,040 *5E.... dạng như vậy. trong đó đoạn đầu có thể thay đổi tùy thuộc vào định dạng dữ liệu. như với đoạn code trên $GPGGA cho biết thông tin sau nó gồm có thời gian, kinh độ, vĩ độ, khoảng cách so với mực nước biển. giờ mình đang loay hoay với thuật toán tách dữ liệu ra. ví như trong dòng dữ liệu vào ta phải bắt được chuỗi có mào đầu là $GPGGA rồi sau đó lại tách ra các dữ liệu đã nói trên. ($GPGGA(mào đầu),002153.000(thời gian),3342.6618,N(vĩ độ),11751.3858,W(kinh độ),1,10,1.2,27.0,M,34.2,M,,000 *5E. dữ liệu tách ra cần cho lưu vào một biến riêng và được truyền đi vào máy tính như sau. pro nào chỉ giáo giúp mình nhé. mình có tham khảo đoạn code sau sử dụng trong 1 ngắt uart nhưng khi viết thì không thực hiện đươc. nếu ai biết sai chỗ nào thì chỉ mình luôn với nhé.
thank mọi người đã đọc!Code:ISR (SIG_USART1_RECV) { data = UDR1; putChar_LCD(data); Uart0_Trans(data); Process_Data(data); } // ham xu ly du lieu ngat void Process_Data(char data) { stt = 0; switch(stt){ case 1: if(data!='$') stt=0; break; case 2: if(data!='G') stt=0; break; case 3: if(data!='P') stt=0; break; case 4: if(data!='G') stt=0; break; case 5: if(data!='G') stt=0; break; case 6: if(data!='A') stt=0; break; case 7: if(data!=',') stt=0; break; //--------tach phan thoi gian------------ case 8: if(data<'0' || data>'9') stt=0; else time[0]=data; break; case 9: if(data<'0' || data>'9') stt=0; else time[1]=data; break; case 10: if(data<'0' || data>'9') stt=0; else time[2]=data; break; case 11: if(data<'0' || data>'9') stt=0; else time[3]=data; break; case 12: if(data<'0' || data>'9') stt=0; else time[4]=data; break; case 13: if(data<'0' || data>'9') stt=0; else time[5]=data; break; case 14: if(data!='.') stt=0; else time[6]=data; break; case 15: if(data<'0' || data>'9') stt=0; else time[7]=data; break; case 16: if(data<'0' || data>'9') stt=0; else time[8]=data; break; case 17: if(data<'0' || data>'9') stt=0; else time[9]=data; break; case 18: if(data!=',') stt=0; break; //----------tach phan vi do----------------- case 19: if(data<'0' || data>'9') stt=0; else vido[0]=data; break; case 20: if(data<'0' || data>'9') stt=0; else vido[1]=data; break; case 21: if(data<'0' || data>'9') stt=0; else vido[2]=data; break; case 22: if(data<'0' || data>'9') stt=0; else vido[3]=data; break; case 23: if(data!='.') stt=0; else vido[4]=data; break; case 24: if(data<'0' || data>'9') stt=0; else vido[5]=data; break; case 25: if(data<'0' || data>'9') stt=0; else vido[6]=data; break; case 26: if(data<0 || data>9) stt=0; else vido[7]=data; break; case 27: if(data<0 || data>9) stt=0; else vido[8]=data; break; case 28: if(data!=',') stt=0; else vido[9]=data; break; case 29: if(data!='N' || data!='S') stt=0; else vido[10]=data; break; case 30: if(data!=',') stt=0; break; //----------tach phan kinh do------------------ case 31: if(data<0 || data>9) stt=0; else kinhdo[0]=data; break; case 32: if(data<0 || data>9) stt=0; else kinhdo[1]=data; break; case 33: if(data<0 || data>9) stt=0; else kinhdo[2]=data; break; case 34: if(data<0 || data>9) stt=0; else kinhdo[3]=data; break; case 35: if(data<0 || data>9)stt=0; else kinhdo[4]=data; break; case 36: if(data!='.') stt=0; else kinhdo[5]=data; break; case 37: if(data<0 || data>9) stt=0; else kinhdo[6]=data; break; case 38: if(data<0 || data>9) stt=0; else kinhdo[7]=data; break; case 39: if(data<0 || data>9) stt=0; else kinhdo[8]=data; break; case 40: if(data<0 || data>9) stt=0; else kinhdo[9]=data; break; case 41: if(data!=',') stt=0; else kinhdo[10]=data; break; case 42: if(data!='E' || data!='W') stt=0; else kinhdo[12]=data; break; case 43: if(data!=',') stt=0; break; default : stt=0; break; } }


Comment
-
mình dùng IAR , CodeVision , AVRstudio+ GCC , mikroC nhưng chẳng thấy cái gì khác biệt hơn thằng mikroC ... thế là mình toàn dùng mikroC ... nhưng nạp thì dùng STK500 sử dụng với AVR studio ( vì bản thân thằng AVR studio set cấu hình ( Fuse) dễ mà chuẩn ! ), những thằng khác loằng ngoằng, khó chịu ( có khi còn vớ vẩn nữa) !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
-
theo mình bạn nên dùng 1 buffer ( mảng ) đủ chiều dài để lưu trữ bản tin ... rồi xử lý ... là cách đơn giản và dễ dàng nhất !Nguyên văn bởi nguyentuanqs Xem bài viếtA @queduong ơi, xem hộ em cái này với ạ. em mò mà chưa nghĩ ra lỗi ở đâu . http://www.dientuvietnam.net/forums/...nh-voi-165156/
cách đọc cả bản tin ... thì kiểm tra " lúc nào bắt được kí tự " bắt đầu $" thì ( for i = .... đến ...max)... sau khi bản tin đã được lưu vào bộ đệm xong, thì lấy dữ liệu từ bộ đệm ra khai thác thôi ! Khai thác xong lại tiếp tục đọc lượt mớ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
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 qua, 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
05-12-2025, 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 -
mình làm cũng lâu rồi...mình dùng bản 2.3.4 dùng bản cr.ack thôi...có thể search trên mạng được...
Comment