mình mới học về AVR nên không biết nhiều nên mong cao thủ giúp đỡ, vấn đề của mình là mình dùng hai chân PA0 và PA1 làm việc ở chế độ ADC, vây trong chương trình khi đọc giá trị của PORTA vào một biến nào đó thì hai bít thứ 0 và 1 của biến đó sẽ có giá trị là bao nhiêu
mọi người cho mình hỏi chút về ADC trong ATmega16
Collapse
X
-
Cái này tôi cũng đang thắc mắc đây. Hồi trước có thử mãi mà vẫn không đựoc cách vừa xuất 7 chân của PORTA và đọc chân còn lại. Cuối cùng là cứ mỗi khi xuất PORT thì lại phải tắt ADC đi. Cũng còn một cách nữa là định hướng PA0,PA1 là cổng vào. Nhưng cũng thấy cứ thế nào ấy???
-
Đúng vậy ! Vì không cấu hình PortA ( các chân dùng ADC ) là cổng vào thì khi đó giá trị ADC nhận được sẽ không đúng so với đầu vào !Mạch nạp Little Programmer
MSC-51,AVR,EEPROM ... etc
Site Fukusei shop :
Comment
-
bạn phải thiết lập pa0, pa1 là đầu vào. Rồi thiếp lập thanh ghi admux(chọn kênh adc)-nó có 8 kênh, thanh ghi j đó về adc nữa(tôi ko nhớ). Sau đó bật ngắt adc complete lên, rồi chờ. Khi chuyển đổi xong nó sẽ để giá trị vào 2 thanh ghi adch:adcl, mình sẽ đọc 2 giá trị này.
Bạn xem ở datasheet là có hết.|
Comment
-
ý của mình là mình dùng hai chân PA0 và PA1 cho chức năng ADC ( tức là hai chân này la đâu vào), sau đó mình dùng 6 chân từ PA2 đến PA7 làm đầu ra, trong chương trình mình viết co đoạn lệnh trước khi xuất dữ liệu ra các chân từ PA2 đến PA7 thì phải kiểm tra các giá trị hiện thời của các chân đó rồi mới xuất dữ liệu mới ra, bây h mình đọc kiểm tra PORTA thì lúc này hai bit mà mình làm đầu vào ADC sẽ có giá trị là bao nhiêu, vì lúc này ở hai chân này là tín hiệu analog chứ không phải là tín hiệu số
Comment
-
bạn "naruto" có thể nói rõ bài toán của bạn chi tiết hơn không?
mình chưa hiểu rõ ý của bạn. mình thử xem nếu đúng thì tốt.
ví dụ:
char Status = 0;
if(PINA.2 ==1) //kiểm tra P2 nếu mức 1
{
Status=1; //báo đang là mức 1
}
............................
if(PINA.7==1)
{
Status=1;
}
if(Status==1) // nếu trạng thái một trong các chân từ PA2 đến PA7 là mức 1
{
//giả sử xuất ra 6 chân còn lại mức 1
PORTA = 0x3F;
//xuất ra PORTA.3 đến PORTA.7 mức thấp
PORTA = 0x30;
Status=0;
}n
ĐT: 0986 492 489
Tham khảo:
Comment
-
[QUOTE=minhhieu;45049]bạn "naruto" có thể nói rõ bài toán của bạn chi tiết hơn không?
mình chưa hiểu rõ ý của bạn. mình thử xem nếu đúng thì tốt.
ví dụ:
char Status = 0;
if(PINA.2 ==1) //kiểm tra P2 nếu mức 1
{
Status=1; //báo đang là mức 1
}
............................
if(PINA.7==1)
{
Status=1;
}
đúng như bạn viết, tuy nhien minh muốn kiểm tra PORTA chỉ bằng một lệnh thôi vi dụ giả sư các chân từ 2 đến 7 đang ở mức 1 và mình muốn kiểm tra các bit đó xem có đúng bằng 1 không chỉ với một lệnh câu lênh if, tuy nhiên 2 bit PINA.0 và PINA.1 lúc này đang dùng cho ADC
nên không rõ giá trị của hai bit PINA.0 và PINA.1 khi đọc vào là 1 hay là 0 để đặt điều kiện kiểm tra
vi dụ
unsigned int kiemtra;
kiemtra=PORTA; // vậy biến Kiemtra sẽ = 0xff hay = 0x3f
Comment
dự án của bạn Tra theo mã, xem datasheet và đặt hàng trực tuyến. MicrochipROHMEpsonTaejin
Đặt hàng & tư vấn
Hà Nội024.3640 8561
TP.HCM028.3811 9870
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Quét mã hoặc bấm để chat Zalo với R&PChat Zalo
Bài viết mới nhất
Collapse
-
Trả lời cho Tìm bạn thân quen cũ.bởi thuaimiVẫn nhớ và kính trọng Bác cũng các cao nhân trên dientuvietnam.net. Tính từ ngày tham gia trên này cũng đã hơn 20 năm rồi. Quá nhiều thay đổi cả trong công việc và cuộc sống. Nhưng được thấy lại các nick cũ vẫn sáng đèn là thấy vui rồi....-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 16:33 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi nhathung1101Còn sống không lão??? Mất một thời gian chữa bệnh nên quên hỏi thăm.......
-
Channel: Tâm tình dân kỹ thuật
25-10-2026, 03:09 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi nhathung1101Thời buổi năng lượng xanh, nhất là xanh cả mặt... Thì Điện mặt giời, điện gió, sẽ lên ngôi.
Nếu không nắm bắt được cái cơ bản đó thì đi làm coder à? Mà coder giờ thất nghiệp cả lũ vì AI rồi!!!









...
-
Channel: Điện tử công suất
25-10-2026, 03:03 -
-
Trả lời cho Công suất truyền qua lõi máy biến ápbởi quangdonguehChà, lâu lắm rồi nhưng diễn đàn vẫn còn những chủ đề cốt lõi của điện tử công suất...-
Channel: Điện tử công suất
24-10-2026, 07:53 -
-
bởi bqvietNếu muốn tăng công suất cần tăng con chip và tăng biến áp lên lớn hơn. Thiết kế ban đầu dùng TNY25x và biến áp EE16 hoặc EE13. Tăng con chip lên TNY268 vẫn mạch nguyên lý đó và biến áp lên EE19 sẽ nâng công suất ra thêm nhiều. Tăng tối đa...-
Channel: Điện tử công suất
24-10-2026, 02:14 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 14:33 -
-
bởi Nexus 6PMạch này chỉ chạy cho LED 10W trở xuống, còn muốn chạy Led công suất cao thì sao bác thớt ơi?-
Channel: Điện tử công suất
22-10-2026, 10:49 -
-
Trả lời cho Tìm VR 5 chânbởi dinhthuong80Cảm ơn bác bqviet . Nhưng hình như các VR 5 chân của linhkienchatluong là loại có 2 chân là công tắc đóng mở. Thấy trên Shopee có chỗ bán linh kiện đàn Organ, mà không biết đúng loại không, với lại sao ... mắc dữ dội luôn ấy!!!
...-
Channel: Hướng dẫn tìm thông tin linh kiện
19-10-2026, 11:30 -
-
Trả lời cho Tìm VR 5 chânbởi bqvietTrang sản phẩm này có loại 5 chân và 8 chân
https://linhkienchatluong.vn/chiet-a...doi_s1595.aspx
Ngoài ra một trang cùng cấp với nó có loại 6 chân nữa, chắc đủ cho người muốn tìm....-
Channel: Hướng dẫn tìm thông tin linh kiện
17-10-2026, 17:19 -
Comment